使用的是Nexus开源私服软件搭建的,官网下载,解压配置环境变量,启动,这个安装就不详细说明了,网上教程可以去参考
1.基本点
作为一个前端我们需要搭建的是一个npm私服,而nexus私服的配置有几个点需要注意:
- proxy, 第三方源,比如 npm 中央仓库(registry.npmjs.org/),taobao(registry.npm.taobao.org/),
- hosted,这个就是们自己内部开发 package 上传后存储的目录
- group,字面意思,是个集合的意思,包含了上面2个,我们是从这个路径下安装依赖
如下图
2.创建
2.1 创建 proxy
如上图红框框起来的都是相对而言需要注意的点
-
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命令,即可下载依赖包使用
私服搭建到这里基本就完成了