nexus设置
一、登陆nexus
地址:http://10.137.8.212:8081/#admin/repository/blobstores
二、创建知识库,有3种类型
三、创建仓库
(1)创建npm(hosted)私有仓库
①
②hosted改成allow redeploy,这样才能运行重复上传一个包,不然会报400:bad request
(2)创建npm(proxy)仓库
①proxy的remote storage设置:当私有仓库和代理仓库缓存包里无请求的包时,就会通过这里配置的地址去服务器下载需要的包,然后再缓存下来。我填的是淘宝镜像:https://registry.npm.taobo.org。npm官网的下载有点慢
(3)创建npm(group)仓库
①name: npm-group,是仓库组的名称。可以包含任何npm的仓库。最终npm install等操作时的地址将会是这个仓库组的地址。
group中,将刚创建的私有仓库(npm-hosted)和代理仓库(npm-proxy)拖动到右边。四、配置权限
一定不能忘,不然在adduser和publish会一直报错401:Unable to authenticate, need: BASIC realm=“Sonatype Nexus Repository Manager”
五、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
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
查看上传的包
下载私有包
一、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文件夹看到下载下来的私有包