1、创建verdaccio系统用户:
$ sudo adduser --system --gecos 'Verdaccio NPM mirror' --group --home /var/lib/verdaccio verdaccio
2、切换到该用户,并且切入该用户的家目录:
$ sudo su -s /bin/bash verdaccio
$ cd
3、运行命令启动服务,然后退出,会在当前目录下生成storage目录和verdaccio目录
$ verdaccio
注意:storage目录下的 .verdaccio-db.json 文件很重要,发布一个自己的package会在里面加一项,页面上会根据该文件显示所有package,它的初始内容为:
{"list":[],"secret":"0a5833a4944951f0a799a921dedb3067e68b0e639767b72418fe1863d93a6801"}
4、storage目录不用动,后面发布的包都放在这个目录下,切换root账号,把verdaccio目录移动到 /etc 下,里面是配置文件 config.yaml
注意:后面当用户注册进来时,verdaccio目录下还会生成放在用户密码的文件 htpasswd
5、让它可以在后台以systemctl的方式运行,并且可以开机自启动:
把安装后自带的 verdaccio.service 复制到 /lib/systemd/system/,然后加载,命令如下:
$ sudo cp /usr/lib/node_modules/verdaccio/systemd/verdaccio.service /lib/systemd/system/ && sudo systemctl daemon-reload
注意:该verdaccio.service文件默认指向的verdaccio配置文件路径就是 /etc/verdaccio/config.yaml,所以上一步才会那样做
6、然后就是修改配置文件,配置很重要:
注意:配置文件一定不能包含Tab键,只能使用多个空格键,不然verdaccio会启动失败
注意:cache: false 选项表示只缓存包的package.json文件,而不是整个包,不然storage将会充满包
storage: /var/lib/verdaccio/storage
plugins: ./plugins
web:
title: Verdaccio - RandSpace
listen:
0.0.0.0:13579
auth:
htpasswd:
file: ./htpasswd
max_users: 2
uplinks:
npmjs:
url: https://registry.npmjs.org/
cache: false
packages:
'@rand/*':
access: $authenticated
publish: rand
unpublish: rand
'@*/*':
access: $authenticated
publish: $authenticated
unpublish: rand
proxy: npmjs
'**':
access: $authenticated
publish: $authenticated
unpublish: rand
proxy: npmjs
server:
keepAliveTimeout: 60
middlewares:
audit:
enabled: true
logs: { type: stdout, format: pretty, level: http }
6、最后就可以启动,开机自启动,查看运行状态:
systemctl start verdaccio
systemctl enable verdaccio
systemctl status verdaccio
标签:npm,Ubuntu1804,authenticated,lib,rand,storage,verdaccio,目录,Verdaccio From: https://blog.51cto.com/u_13128132/6096428