要搭建企业内部使用的 npm 服务(即私有 npm 仓库),让企业员工可以像使用 npm 官方仓库一样使用内部包,并且控制包的发布、权限与访问,通常需要以下几个步骤:
一、明确需求
- 是否只做私有包托管?
- 是否需要代理 npm 官方仓库以加速/缓存?
- 是否需要支持权限管理(读/写/发布)?
- 是否需要支持web 管理界面?
- 是否考虑镜像同步(与 npm 官方同步)?
二、选型:常用方案
名称 | 描述 | 推荐场景 |
---|---|---|
Verdaccio | 开源、轻量、易部署的私有 npm 仓库 | 中小团队首选 |
Nexus Repository OSS | 支持多种仓库(npm、maven、docker 等) | 多语言、多工具统一仓库 |
GitHub Packages / GitLab Packages | 与代码库集成,支持私有 npm | 已用 GitHub/GitLab 的企业 |
Cloud 方案(如阿里云制品库) | 云服务托管 | 无需维护服务器,付费 |
最常用的选择是 Verdaccio,因为它:
- 快速搭建
- 支持 npm 包缓存代理
- 支持私有包
- 支持用户登录 & 权限配置
- 社区活跃
三、Verdaccio 搭建步骤
1. 安装 Node.js 环境
node -v
npm -v
建议使用 LTS 版本。
2. 全局安装 verdaccio
npm install -g verdaccio
3. 启动服务
verdaccio
默认监听在 http://localhost:4873
。
4. 配置(可选)
配置文件一般在 ~/.config/verdaccio/config.yaml
,你可以修改:
storage
: 本地包存储路径auth
: 用户认证方式uplinks
: 上游代理的 npm 仓库packages
: 包访问与发布权限
示例:
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@company/*':
access: $authenticated
publish