nexus设置

一、登陆nexus
地址:http://10.137.8.212:8081/#admin/repository/blobstores

二、创建知识库,有3种类型

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_nexus

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_json_02

三、创建仓库

(1)创建npm(hosted)私有仓库


linux nexus3 私有仓库 docker nexus搭建npm私有仓库_json_03

②hosted改成allow redeploy,这样才能运行重复上传一个包,不然会报400:bad request

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_上传_04


(2)创建npm(proxy)仓库

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_nexus_05


①proxy的remote storage设置:当私有仓库和代理仓库缓存包里无请求的包时,就会通过这里配置的地址去服务器下载需要的包,然后再缓存下来。我填的是淘宝镜像:https://registry.npm.taobo.org。npm官网的下载有点慢

(3)创建npm(group)仓库

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_私有仓库_06


①name: npm-group,是仓库组的名称。可以包含任何npm的仓库。最终npm install等操作时的地址将会是这个仓库组的地址。

group中,将刚创建的私有仓库(npm-hosted)和代理仓库(npm-proxy)拖动到右边。四、配置权限

一定不能忘,不然在adduser和publish会一直报错401:Unable to authenticate, need: BASIC realm=“Sonatype Nexus Repository Manager”

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_json_07

五、npm 设置
npm config set registry http://10.137.8.212:8081/repository/npm-group/

发布包:创建一个npm包,发布到建立的私服

一、桌面创建一个yx-test-local文件夹,里面包含index.js和package.json
1、cd ~/desktop
2、mkdir yx-test-local
3、npm init -y,修改package.json文件
name是私服上最终显示的包名

name: "@chint/parkball"

4、新增index.js文件,写入代码

// index.js
module.exports = 123456;

二、注册登录

1、注册hosted仓库

(1) npm adduser --registry=http://10.137.8.212:8081/repository/npm-hosted/ (2) 输入admin和password

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_上传_08


2、登录hosted

发布方式1

一、进入yx-test-local包目录,发布包
1、cd yx-test-local 2、npm publish --registry=http://10.137.8.212:8081/repository/npm-hosted/ 二、注意:
1、npm-hosted后面记得加/
2、上传之前不能用npm config set @chint:registry http://... (或者说npm config list中查看registry,不能有上传的包的package.json中的name的“@chint”。如果有@chint源,则需要删除), 这样会显示上传成功,但是在私服中找不到这个库。
3、不能省略–registry=http://10.137.8.212:8081/repository/npm-hosted/,不然会报错:400,400 Bad Request - PUT http:///10.137.8.212:8081/repository/npm-group/@chint%2parkball
4、不可以进入yx-test-local上一层目录,然后用npm publish yx-test-local --registry=http://10.137.8.212:8081/repository/npm-hosted/, 会报错404
5、如果是tgz包,可以npm publish cms-0.0.2.tgz --registry=http://10.137.8.212:8081/repository/npm-hosted/ (1)不可以进入cms-0.0.2.tgz上一层目录,如@aaa,然后用npm publish cms-0.0.2.tgz --registry=http://10.137.8.212:8081/repository/npm-hosted/, 会报错404:404 Not Found - GET http://10.137.8.212:8081/repository/npm-hosted/@aaa%2cms-0.0.2.tgz - Package ‘@aaa/cms-0.0.2.tgz’ not found。

发布方式2

一、yx-test-local的config.json里设置

"publishConfig": {
    "registry": "http://10.137.8.212:8081/repository/npm-hosted/"
  },

二、cd yx-test-local 三、npm publish ,因为指定了publish的地址,所以后面不用再加–registry参数

更新一个已经发布的包

一、修改包的版本
1、升级major:1.0.0 --> 2.0.0

npm version major

2、升级minor:1.0.1 --> 2.1.0

npm version minor // 如果没有prerelease,直接升级minor,同时patch设置为0

3、升级patch:1.0.0 --> 1.0.1

npm version patch // 如果有prerelease,则去掉prerelease,其他保持不变;如果没有prerelease,则升级minor

二、重新发布包
同发布包-发布方式1/2

查看上传的包

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_上传_09

下载私有包

一、
npm config set @chint:registry http://10.137.8.212:8081/repository/npm-group/ 1、如果是要删除的话,用
npm config delete @chint:registry 二、桌面新建一个npm-test文件夹,并将私有包下载在npm包中
1、cd ~/desktop
2、mkdir npm-test
3、cd npm-test
4、npm init -y
5、package.json中新增

"dependencies": {
    "@chint/yx-test-local": "1.0.0"
  }

6、npm config set registry https://registry.npmjs.org/ ,不然找不到其他包的源。

如果是要设置成淘宝的源,npm config set registry http://registry.npm.taobao.org/ 7、npm i

这样就能在node_modules文件夹看到下载下来的私有包

linux nexus3 私有仓库 docker nexus搭建npm私有仓库_nexus_10