Verdaccio
一、简介
1. 什么是 Verdaccio
“一个基于 Node.js 的轻量级私有仓库”。 平时使用 npm publish 进行发布时,上传的仓库默认地址是 npm,通过 Verdaccio 工具在本地新建一个仓库地址,再把本地的默认上传仓库地址切换到本地仓库地址即可。当 npm install 时没有找到本地的仓库,则 Verdaccio 默认配置中会从 npm 中央仓库下载。
注:
Verdaccio 表示意大利中世纪晚期 fresco 绘画中流行的一种绿色的意思。
2. 优点
- 私密性高,仅团队共享。
- 安全性高,能够有效的防治恶意代码攻击。
- 使用局域网,传输速度快。
3. 官网
二、准备环境
1. NPM
包管理工具
- 常用命令
命令 | 描述 |
---|---|
npm who am i | 查看当前用户 |
npm config list | 查看源地址 |
npm set registry url | 切换源地址 |
npm config rm registry | 删除源地址 |
npm login | 登录 |
npm publish | 发布 |
npm unpublish 包名 | 撤销发布 |
2. NRM
npm 源管理工具(可以快速切换仓库源)
- 安装
1# 全局安裝
2npm install -g nrm
- 配置环境变量
在系统变量Path中配置 nodejs的全局安装路径
- 常用命令
命令 | 描述 |
---|---|
nrm ls | 查看源地址 |
nrm add registry url | 添加源地址 |
nrm use registry | 切换源地址 |
nrm current | 查看当前源地址 |
nrm del registry | 删除源地址 |
3. PM2
进程管理
重启策略
日志
持久化
集群模式
静态服务
应用部署
监控
...
- 官网
- 介绍
PM2 是一个守护进程管理工具,帮助您管理和守护您的应用程序。它以简单直观的 CLI 命令行方式进行工作。
- 安装
1# 全局安裝
2npm install pm2@latest -g
3yarn global add pm2
4复制代码
- 常用命令
命令 | 描述 |
---|---|
pm2 ls | 查看进程 |
pm2 start [app.js] | 启动某个应用 |
pm2 stop [appName/ID] | 停止某个应用(进程名/ID) |
pm2 restart [app.js] | 重启某个应用 |
pm2 describe [appName] | 查看某个进程的具体情况 |
pm2 logs [appName/ID] | 查看应用日志(进程名/ID) |
pm2 delete [appName/ID] | 删除进程(进程名/ID) |
pm2 stop all | 停止所有应用 |
pm2 restart all | 重启所有应用 |
pm2 logs | 查看实时日志 |
pm2 logs all | 查看所有日志 |
pm2 delete all | 删除所有进程 |
- 通过 PM2 启动 Verdaccio
1# 以管理员身份打开 cmd
2# 1.直接执行,启动失败
3pm2 start verdaccio
4 # 2.输出日志,查看报错信息
5pm2 logs
6 # 3.正确的 pm2 执行应该拼上 verdaccio 包所在的路径
7# D:\Nvm\v16.17.0\node_global\node_modules\verdaccio\bin\verdaccio
8pm2 start D:\Nvm\v16.17.0\node_global\node_modules\verdaccio\bin\verdaccio
9复制代码
注:
直接运行会启动失败,可输出日志查看,是因为要执行的 verdaccio 包未找到
注:
pm2 start 后面拼上 verdaccio 包的路径,启动成功,可以访问 http://localhost:4873/
三、安装与运行
1. 安装
1# 全局安装
2# 本地环境 node-16.17.0 npm-8.15.0
3npm install -g verdaccio
4复制代码
2. 运行
1# 直接使用 verdaccio 命令运行 (不建议)
2verdaccio
3 # 使用 pm2 运行 (建议使用pm2托管)
4pm2 start verdaccio
5复制代码
- 在路径
C: \Users \Lemon \AppData\Roaming\verdaccio\
下生成默认的配置文件 config.yaml
- 默认页面地址:
http://localhost:4873/
- 配置
config.yaml
文件后,可以通过http://192.168.3.7:4873/
访问页面
四、配置流程
1. 添加源地址
1# 查看可选源,* 代表正在使用的源
2nrm ls
3 # 添加一个私有 npm 源,'localhost' 为自定义的源地址名称
4nrm add localhost http://localhost:4873/
5复制代码
2. 使用源地址
1# 'localhost' 为添加源时定义的源地址名称
2nrm use localhost
3复制代码
3. 添加用户
1# 添加 npm 用户前,需要先启动 verdaccio 服务
2npm adduser --registry http://localhost:4873/
3复制代码
注:
密码不能少于8位
五、发布与下载
1. 包
- package.json 配置
1{
2 // 包名
3 "name" : "@its/log" ,
4 // 包的版本号
5 "version" : "1.0.0",
6 // 包的描述信息
7 "description":"私有包",
8 // 入口文件
9 "main" : "index.ts",
10 // 以 ES Module(也就是 ES6)模块化方式进行加载:因为早期没有 ES6 模块化方案时,都是遵循 CommonJS 规范,而 CommonJS 规范的包是以 main 的方式表示入口文件的;为了区分就新增了 module 方式,但是 ES6 模块化方案效率更高,所以会优先查看是否有 module 字段,没有才使用 main 字段。
11 "module": "index.ts",
12 // 执行 npm 脚本命令简写
13 "scripts": {
14 "test" : "echo \ "Error: no test specified\ " && exit 1"
15 },
16 // 关键词
17 "keywords" : [ "npm " ,"package" ] ,
18 // 可以配置要上传 npm 的文件白名单目录
19 "files" : {
20 "dist"
21 },
22 // 开发环境下,项目所需的依赖
23 "dependencies" : {},
24 // 生产环境下,项目所需的依赖
25 "devDependencies" : {},
26 // 作者
27 "author" : "wyw" ,
28 // 开源许可协议:BSD ISC MIT ...
29 "license" :"MIT",
30 // 代码仓库地址
31 "repository": {
32 "type": "git",
33 "url": ""
34 },
35}
36复制代码
2. 登录
1# 登录
2npm login
3 # 验证是否登录成功,登录成功后会显示用户名
4npm who i am
5复制代码
3. 发布
1# 发布前,需要先切换到要上传的包报所在的目录
2npm publish
3复制代码
4. 下载
1# '@its/log' 为上传包的包名
2npm install @its/log --save
3复制代码
个人笔记记录 2021 ~ 2025