将npm包发布在私有仓库(nexus)中

本文详细介绍了如何在Nexus上创建npm私有仓库,并配置npm客户端,通过两种方式将前端项目上传到私有仓库,包括验证上传是否成功的过程。
摘要由CSDN通过智能技术生成

有时候需要将自己写的一些前端项目打包发布到公司内部的nexus仓库中。

在nexus中新建一个 repository

打开nexus,登录以后,按照下图操作

在这里插入图片描述

选择 npm (hosted)

在这里插入图片描述

填写 repository 相关信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GI8XjHII-1576641112026)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p968)]

  1. 这里的 Blob store最好选择为 npm 专属的

在这里插入图片描述

  1. 如果没有需要在Blob Stores新建

在这里插入图片描述

  1. 在Hosted选择:Allow redeploy

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-srUoURdu-1576641112027)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p971)]

否则在后面上传的时候会报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-chgyOblf-1576641112028)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p984)]

npm ERR! code E400
npm ERR! 400 Bad Request - PUT http://xxx.xxx.xxx.xxx:xxxx/repository/npm-hosted/demo-test - Repository does not allow updating assets: npm-hosted

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/wjy/.npm/_logs/2019-12-18T03_09_27_631Z-debug.log

重新查看配置如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oviABXOt-1576641112028)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p973)]

  1. 点击Create repository创建

配置npm

查看仓库地址

在 Repositories 列表中选择刚刚建的 npm-hosted ,点击copy

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TdYDl0jh-1576641112029)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p974)]

在弹出的弹框中可以看到仓库地址:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lcOx7c3i-1576641112029)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p975)]

配置仓库地址

在npm 中配置仓库地址,执行命令:

npm config set registry 仓库地址

验证配置是否正确

执行命令:

npm config list

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VCjlq8HE-1576641112030)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p976)]

即配置正确。

添加nexus权限

Realms菜单中,将npm Bearer Token Realm添加到Active中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-doHIKRkL-1576641112030)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p977)]

移动后的结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-56OSvJIF-1576641112031)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p978)]

然后点击Save按钮保存

这里一定要移动,不然会报错。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eVLX8Wa9-1576641112031)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p979)]

npm ERR! code E401
npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/wjy/.npm/_logs/2019-12-18T02_29_24_122Z-debug.log

上传nexus

新建一个 demo-test 项目

1.新建一个目录 demo-test,并切换到其中

mkdir demo-test && cd demo-test
  1. 初始化一个项目
npm init

然后一路回车,最后键入y即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pqC7HItx-1576641112032)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p980)]

添加用户

npm adduser -registry 仓库地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4DawlrEU-1576641112033)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p986)]

npm adduser -registry http://xxx.xx.x.x:xxxx/repository/npm-hosted/
Username: admin
Password: 
Email: (this IS public) demo-test@devops.com
Logged in as admin on http://xxx.xx.x.x:xxxx/repository/npm-hosted/.

上传包

上传的包一定要确保根目录下有package.json,否则会报错。

第一种方式

执行命令:

npm publish -registry 仓库地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GqOPekqF-1576641112034)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p981)]

demo-test npm publish -registry http://xx.xx.xx.xx:xxx/repository/npm-hosted/
npm notice 
npm notice 📦  demo-test@1.0.0
npm notice === Tarball Contents === 
npm notice 348B package.json
npm notice === Tarball Details === 
npm notice name:          demo-test                               
npm notice version:       1.0.0                                   
npm notice package size:  320 B                                   
npm notice unpacked size: 348 B                                   
npm notice shasum:        c897041e0aa1cbf68734be9e4058e39490de8eb3
npm notice integrity:     sha512-Seb61XX1ronMM[...]ioQBdXs2fEW+Q==
npm notice total files:   1                                       
npm notice 
+ demo-test@1.0.0
➜  demo-test 

此时即上传成功。

第二种方式

在package.json 中添加

"publishConfig": {
    "registry": "仓库地址"
  },

即:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L2665lTf-1576641112035)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p982)]

然后执行:

npm publish

验证是否上传成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jjy76R4D-1576641112035)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p983)]

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值