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
中的taobao
1
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
,并且写先注册一个用户
,然后才能发布模块
切换
registry
1
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