NPM 私有源配置指南
概述
我们使用基于 Verdaccio 部署的私有 npm 仓库来管理内部的私有包。私有仓库地址为:
注意: 需要登录才能查看和下载私有包
关于 Verdaccio
Verdaccio 是一个轻量级的 Node.js 私有代理注册表,主要特点:
- 📦 支持 npm、yarn、pnpm 等包管理器
- 🔒 提供身份验证和权限控制
- 🚀 高性能的缓存代理
- 🛠️ 易于部署和维护
- 📱 提供 Web UI 界面
管理员配置
用户认证配置流程
如需为 npm 私有源添加新用户,请按以下步骤操作:
第一步:生成加密密码
- 访问 https://hostingcanada.org/htpasswd-generator/
- 在 Username 字段输入用户名
- 在 Password 字段输入密码
- 在 Mode 选项中选择 Bcrypt (Apache v2.4 onwards)
- 点击生成,复制生成的 htpasswd 字符串

第二步:配置到 Nomad
注意: 访问 Nomad 管理界面需要配置 IP 白名单才能正常访问,请确保您的 IP 地址已被授权。
- 访问 https://nomad.q2tx.com/ui/jobs/verdaccio@default/definition?view=job-spec
- 找到
EmbeddedTmpl环境变量配置 - 将生成的 htpasswd 字符串添加到配置中
- 多个账号使用
\n分隔符隔开
示例配置格式:
atom8:$2y$10$OIS2UIODdmpZeKX2I05steSZZ...
user2:$2y$10$OtherHashedPasswordHere...
user3:$2y$10$AnotherHashedPasswordHere...
第三步:重启服务
配置完成后,重启 Verdaccio 服务使配置生效。
配置方法
1. 获取认证令牌
客户端的认证流程由 npm 自行处理,按以下步骤操作:
方式一:使用 npm adduser 命令(推荐)
bash
npm adduser --registry https://npm-all.q2tx.com/执行命令后,按提示输入:
- 用户名(Username)
- 密码(Password)
- 邮箱(Email)
登录成功后,npm 会将 Verdaccio 返回的 Token 自动保存在配置文件中。
查看生成的配置
Token 存放于您的用户主目录下的 .npmrc 文件中:
macOS/Linux:
bash
cat ~/.npmrcWindows:
cmd
type %USERPROFILE%\.npmrc示例输出:
bash
//npm-all.q2tx.com/:_authToken="generate token"注意: 如需了解更多有关
.npmrc相关的内容,请查阅 npm 官方文档。
方式二:手动配置(可选)
如果需要手动配置,可以在项目根目录创建 .npmrc 文件:
bash
# 配置作用域包的注册表
@atom8:registry=https://npm-all.q2tx.com
# 配置认证令牌(从上述方式一中获取)
//npm-all.q2tx.com/:_authToken="generate token"发布包到私有源
1. 登录到私有源
bash
npm login --registry=https://npm-all.q2tx.com输入您的用户名、密码和邮箱进行登录。
2. 配置包的作用域
在 package.json 中确保包名使用正确的作用域:
json
{
"name": "@atom8/your-package-name",
"version": "1.0.0",
"publishConfig": {
"registry": "https://npm-all.q2tx.com"
}
}3. 发布包
bash
# 发布到私有源
npm publish --registry=https://npm-all.q2tx.com
# 或者如果已在 package.json 中配置了 publishConfig
npm publish安装私有包
方式一:使用作用域配置(推荐)
如果已按上述方式配置了 .npmrc,可以直接安装:
bash
npm install @atom8/your-package-name方式二:指定注册表
bash
npm install @atom8/your-package-name --registry=https://npm-all.q2tx.com常见问题
Q: 认证失败怎么办?
A: 检查以下几点:
- 确认 authToken 是否正确
- 检查
.npmrc文件格式是否正确 - 尝试重新登录
npm login --registry=https://npm-all.q2tx.com
Q: 找不到包怎么办?
A: 确认:
- 包名和作用域是否正确
- 是否有权限访问该包
- 网络连接是否正常
Q: 如何管理多个注册表?
A: 可以使用 nrm 工具来管理多个注册表:
bash
# 安装 nrm
npm install -g nrm
# 添加私有源
nrm add company https://npm-all.q2tx.com
# 切换到私有源
nrm use company
# 查看当前源
nrm current最佳实践
- 版本管理:遵循 语义化版本 规范
- 文档说明:为私有包编写详细的 README.md
- 权限控制:合理设置包的访问权限
- 备份策略:定期备份重要的私有包
- 安全配置:使用 Bcrypt 加密方式保护用户密码
相关链接
📚 更多前端文档
- 🛠️ 前端开发环境搭建 - 完整的开发环境配置指南
- 🌐 代理配置详解 - Whistle代理工具配置
- 🔐 管理后台权限配置 - 管理后台菜单和权限系统配置
