nexus管理npm包,npm包发布在私有仓库(nexus)中

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文件夹看到下载下来的私有包
在这里插入图片描述

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值