verdaccio
因为技术变革太快,注意知识的时效性。
verdaccio是基于node开发的一个库,用来搭建私有的npm仓库。因为npm仓库大多数是公有的免费的,私有仓库或者企业版是收费的,在单位内部或者个人一些私有的模块需要托管的时候就需要自己搭建一个私有的仓库,而verdaccio就是选择之一,最便捷的一种。
安装verdaccio
参照官方文档,而且是中文版哟~~~。
注意:
node.js的版本要求
1  | # 全局安装  | 
配置verdaccio
配置文件路径参考:https://verdaccio.org/docs/zh-CN/cli
windows:
C:\Users\用户名\.config\verdaccio\config.yaml
自定义端口号
1  | listen:  | 
添加taobao源
1  | uplinks:  | 
配置packages
配置私有包的规则
建议私有的包都添加统一的前缀或者使用
@npmuser/这样的小组范围类型。1
2
3
4packages:
'npmuser-*':
access: npmuser
publish: npmuser这样配置
npmuser-*开头的包,发布的时候全部都发布到verdaccio中。而且之能npmuser这个用户使用。1
2
3
4
5
6
7packages:
'npmuser-*':
access: $authenticated
publish: $authenticated
# verdaccio内置使用htpasswd插件验证,内置的小组名称有:
# '$all', '$anonymous', '@all', '@anonymous', 'all', 'undefined', 'anonymous'这样配置就是
npmuser-*包,只能登陆的用户使用。配置proxy
修改默认的
proxy为uplinks中的taobao1
2
3
4
5
6
7
8
9
10
11packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
proxy: taobao # 引用了uplinks中的配置
'**':
access: $all
publish: $authenticated
proxy: taobao # 引用了uplinks中的配置
配置npm的registry
建议使用
nrm管理registry
1  | # 添加本地的verdaccio  | 
私有模块发布和使用
发布私有的模块前,要先使用
nrm切换到verdaccio发布的registry,并且写先注册一个用户,然后才能发布模块
切换
registry1
nrm use local
使用npm注册一个账户
1
2
3
4npm adduser # 注册用户
# 注意这个账户不是npmjs.com的账户,这个账户只是注册到自己发布的verdaccio服务中
# verdaccio使用htpasswd来验证用户密码
# verdaccio有插件可以使用自己搭建的gitlab用户来验证。发布模块
1
2
3
4# 例如: node项目为node-demo
# node-demo目录下执行
# 发布之前注意修改package.json中的version版本号
npm publish使用私有模块
1
2# 例如:私有模块名称为:pvt-node
npm i pvt-node