Appearance
搭建npm私库 - npm私服 verdaccio 搭建
参考链接:
- Verdaccio官网:https://verdaccio.org/
使用 verdaccio
搭建 npm
私库,Verdaccio是一个 Node.js创建的轻量的私有npm代理注册源(proxy registry)。
- 全局安装
$npm install -g verdaccio pm2
- 启动
bash
$pm2 start verdaccio 或者 $verdaccio
通过命令行启动的话,如果终端停止了,那我们的服务器也就停止了,因此一般我们通过pm2启动守护进程,pm2
是 nodejs
进程管理的一个工具,这里不做缀叙,pm2 这种方法 更适合前端同学 或者 nodejs 同学的使用。
上面的两个命令执行之后,就可以访问你的私服了。启动成功可以进入http://localhost:4873/
- 搭建后的使用 - 发布组件 下面的
http://100.000.100.1:4873
指的是自己的 私服 IP地址,这里随便写的。 注册用户:
bash
$npm adduser --registry http://100.000.100.1:4873
输入账号、密码、邮箱 (这些都随便填[示例:admin@admin],但是要记住,下一步登录的时候 是需要这样的内容的)
登录用户:
bash
$npm login --registry http://100.000.100.1:4873
输入账号、密码、邮箱
npm publish 发布组件:
bash
$npm publish --registry http://100.000.100.1:4873
到这里就能看到你组件了
注意:1、当前私有仓库必须包含 package.json 文件 2、每次发布的时候,都需要使用npm version v1.x.x 更新版本,并且保证仓库是干净的
移除一个包:
bash
# 删除特定版本
$npm unpublish <package-name>@<version> -registry http://100.000.100.1:4873
# 删除整个包(谨慎使用)
$npm unpublish <package-name> --force -registry http://100.000.100.1:4873
- 基础使用命令 nrm 命令: nrm 是一个 npm 源管理器,允许你快速的在 npm 源 间切换
npm install -g nrm # 安装
nrm ls # 查看可选择源
nrm current # 查看当前
nrm use <registry> # 切换源
nrm add <registry> <url> # 添加源,registry为源名,url为源地址
nrm del <registry> # 删除源
nrm test npm # 测试源的速度
pm2基本操作:
# pm2基本操作
pm2 start `which verdaccio` # 使用pm2启动应用
pm2 list # 查看pm2列表项,即应用状态
pm2 logs # 查看应用输入的日志
pm2 monit # 查看当前通过pm2运行的进程的状态
pm2 describe verdaccio # 查看应用的进程状态
pm2 restart verdaccio # 重启引用,用于修改配置以后重启项目
pm2 stop verdaccio | pid # 停止应用(以应用名或者pid都可以)
pm2 stop all # 停止所有应用
pm2 delete verdaccio | pid # 将应用从pm2列表中删除
发布&下载:
bash
# 客户端设置npm源
npm config get registry # 查看当前npm源
npm config set registry http://192.168.0.118:4873 # 将npm源设置为服务器ip+端口
# 注册用户并登录
npm adduser # 根据提示输入用户名、密码、邮箱,进行注册
npm login # 用刚刚注册的用户名密码进行登录
npm whoami # 查看当前登录的账号
# 创建一个包
mkdir npm-publish-test # 包文件夹
cd npm-publish-test
npm init # npm初始化
# 发布包(在某个需要发布包的项目的根目录下运行)
npm publish
# 自动更新版本号
npm version patch # 小修小改,如修复bug
npm version minor # 新功能但不影响老功能
npm version major # 大改,可能影响现有功能
常见问题解决 私服主题定制,比如我要换个头,换个脚,换一个 favicon 等,换成公司的或者自己的。请修改 verdaccio 的配置文件中的 web 字段。:
- 配置文件位置在: /root/.config/verdaccio/config.yaml 或 verdaccio 的配置文件为 ~/.config/verdaccio/config.yaml
注意:修改完配置得执行
$pm2 restart verdaccio
命令让配置文件生效.# Verdaccio 监听的主机和端口,重点,不配做这个就只本机能访问 listen: 0.0.0.0:4873 # 存储包的位置 storage: ./storage # 配置上游镜像源的设置 uplinks: taobao: url: https://registry.npmmirror.com/ # 配置包的访问权限和范围 packages: '@scope/*': access: $all publish: $authenticated proxy: taobao # Verdaccio 的身份验证设置 auth: htpasswd: file: ./htpasswd # 配置 Verdaccio 中间件的设置 middlewares: audit: enabled: true # 配置 Verdaccio 的日志记录设置 logs: - { type: stdout, format: pretty, level: http } - { type: file, path: verdaccio.log, level: info } # 配置 Verdaccio 的 Web 界面设置 web: title: Verdaccio logo: logo.png theme: default # 配置 Verdaccio 的安全设置 security: api: jwt: sign: expiresIn: 7d verify: maxAge: 7d web: headers: X-Content-Type-Options: 'nosniff' X-Frame-Options: 'deny' X-XSS-Protection: '1; mode=block'
修改结束后,需要重新启动下 verdaccio, 才能让配置文件生效:
$pm2 restart verdaccio
ddd