使用nexus搭建前端npm私服

526 阅读2分钟

使用的是Nexus开源私服软件搭建的,官网下载,解压配置环境变量,启动,这个安装就不详细说明了,网上教程可以去参考

1.基本点

作为一个前端我们需要搭建的是一个npm私服,而nexus私服的配置有几个点需要注意:

  • proxy, 第三方源,比如 npm 中央仓库(registry.npmjs.org/),taobao(registry.npm.taobao.org/),
  • hosted,这个就是们自己内部开发 package 上传后存储的目录
  • group,字面意思,是个集合的意思,包含了上面2个,我们是从这个路径下安装依赖

如下图

2.创建

2.1 创建 proxy

image.png 如上图红框框起来的都是相对而言需要注意的点

  • Name

    • 是对这个代理取得名字,我这里就叫 npm,
  • Remote storage

    • 就是 remote 对应的的 url 了
  • Maximum component age

    • 是获取到 remote 包后,多长时间开始缓存,改成 -1,就是 获取到就缓存
  • Maximum metadata age(超级重要)

    • 多长时间去 remote 仓库获取一次源信息, 默认是 很久 ,这个必须得改最好是10-30分钟一次
  • Negative Cache

    • 都去掉,意思是不缓存没有获取到更新的信息
  • Cleanup(超级重要)

    • 是设置清除缓存的选项,因为一直缓存,磁盘存储是越来越多,总有一天会爆满,需要定时清除 缓存的依赖

基本这样就配置好了 proxy 仓库,保存即可

2.2 创建 hosted

hosted 公司内部 发布存储的包配置就比较简单,最后也不要定时清除的功能,没什么需要设置的

2.3 创建 group

名字随意,按需起名就好,需要选择对应的 proxy,hosted 仓库就好了,如下图

设置好后 ,http://xxx:8081/repository/npm-group/ ,就是我们访问仓库的路径了,npm config set registry=http://xxx:8081/repository/npm-group/

更推荐 nrm,动态切换,使用方便

npm i nrm -g
nrm ls
nrm add nwdnpm  http://xxx:8081/repository/npm-group/
nrm ls
nrm use nwdnpm

试试 npm install webpack --verbose ,看看日志基本上就好了

3 publish

3.1 登录

$ npm login --registry=http://xxx:8081/repository/npm-group/

$ npm login --registry=http://xxx:8081/repository/youhosted/

需要登录 2 次,登录到 group 和 hosted,

待发布的测试包如上图

package.json 设置

注意 registry 设置的是 hosted 地址,不是 group 地址

直接 切换到当前目录,npm publish即可

test包就上传到了我们的host地址

下载依赖包使用

当我们需要使用我们上传的包的时候,直接切换到对应的项目目录中,记得nrm切换到我们的私服的 npm 源,直接使用对应的npm命令,即可下载依赖包使用

私服搭建到这里基本就完成了