码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2021-01-15 12:09:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:拖动   配置   私有   类型   print   官网   user   src   des   

一、登陆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包,发布到建立的私服
1、桌面创建一个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"
  • 1

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

// index.js
module.exports = 123456;
  • 1
  • 2

2、登陆hosted仓库
(1)npm adduser --registry=http://10.137.8.212:8081/repository/npm-hosted/
(2)输入admin和password
技术图片

3、进入yx-test-local包目录,发布包
(1)cd yx-test-local
(2)npm publish --registry=http://10.137.8.212:8081/repository/npm-hosted
注意:
①上传之前不能用npm config set @chint:registry http://... (或者说npm config list中查看registry,不能有上传的包的package.json中的name的“@chint”。如果有@chint源,则需要删除), 这样会显示上传成功,但是在私服中找不到这个库。
②不能省略–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
(3)不可以进入yx-test-local上一层目录,然后用npm publish yx-test-local --registry=http://10.137.8.212:8081/repository/npm-hosted, 会报错404
(4)如果是tgz包,可以npm publish cms-0.0.2.tgz --registry=http://10.137.8.212:8081/repository/npm-hosted
①不可以进入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。

4、发布yx-test-local包的另一种方法:
(1)yx-test-local的config.json里设置

"publishConfig": {
    "registry": "http://10.137.8.212:8081/repository/npm-hosted/"
  },
  • 1
  • 2
  • 3

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

六、查看上传的包
技术图片

七、下载私有包
1、
npm config set @chint:registry http://10.137.8.212:8081/repository/npm-group
(1)如果是要删除的话,用
npm config delete @chint:registry
2、桌面新建一个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"
  }
  • 1
  • 2
  • 3

(6)npm config set registry https://registry.npmjs.org/ ,不然找不到其他包的源。
如果是要设置成淘宝的源,npm config set registry http://registry.npm.taobao.org/
(7)npm i
这样就能在node_modules文件夹看到下载下来的私有包

重复步骤五、六、七,就能上传下载私有包。
技术图片

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

标签:拖动   配置   私有   类型   print   官网   user   src   des   

原文地址:https://www.cnblogs.com/daikainan/p/14280009.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!