npm私库太难管?我用Verdaccio五分钟搭了个内部组件仓库!

npm私库太难管?我用Verdaccio五分钟搭了个内部组件仓库!

经验文章nimo972025-07-08 19:46:303A+A-

在公司内部开发npm包,是不是总绕不开这些痛点:

  • 不方便发布私有包
  • 外网 npm 太慢、还容易挂
  • 权限控制不好做,团队之间乱用依赖
  • 官方私库方案(GitHub Package、npm Enterprise)要钱又不好配

我现在都不用它们了,自从用了开源的 Verdaccio,轻量、自建、权限可控,关键:几分钟就能搭一个自己的 npm 私库

什么是 Verdaccio?

Verdaccio是一个基于Node.js的轻量级私有npm仓库,支持:

  • 本地发布私有包
  • 自动代理和缓存公网npm包
  • 基于用户、组的权限控制
  • 完全支持npm/yarn/pnpm
  • Docker一键部署

一句话:想在局域网内搞个npm企业私库,Verdaccio是目前最省事的选择。

五分钟部署 Verdaccio

1. Docker启动

docker run -d --name verdaccio \
  -p 4873:4873 \
  -v ~/.verdaccio:/verdaccio \
  verdaccio/verdaccio

启动后,访问:http://localhost:4873,就看到Verdaccio的UI了。

2. 修改配置(可选)

Verdaccio默认配置文件在 ~/.verdaccio/config.yaml,可以设置:

  • 包访问权限(auth)
  • 存储路径(storage)
  • 外部npm源代理(uplinks)

例如限制某些用户才能发布包:

packages:
  "@myorg/*":
    access: $authenticated
    publish: admin

发布你的第一个私有包

1. 创建一个包

mkdir my-lib && cd my-lib
npm init -y

修改package.json:

{
  "name": "@myorg/my-lib",
  "version": "1.0.0",
  "publishConfig": {
    "registry": "http://localhost:4873"
  }
}

2. 登录 + 发布

npm adduser --registry http://localhost:4873
npm publish

成功发布!在Web UI也能看到。

配合团队 CI/CD 的最佳实践

  • 在 CI 中配置.npmrc自动登录:
  • //localhost:4873/:_authToken=XXXXXX
  • 将verdaccio镜像 + config一起打包进内网容器平台
  • 配合nginx做反向代理,实现https访问和LDAP登录

Verdaccio vs 其他方案对比

特性

Verdaccio

npm 企业私库

GitHub Package

成本

免费

收费

私包限制多

搭建复杂度

超简单

复杂

权限麻烦

内网支持

不友好

权限管理

自定义

多组织复杂

生态兼容性

完美支持 npm/yarn

总结

如果你还在为npm私有包管理发愁,Verdaccio绝对是目前最友好、好用的解决方案之一:

  • 五分钟搭建,团队立即可用
  • 本地化管理,权限灵活
  • 支持缓存外网依赖,安装提速
  • 适合CI/CD环境集成、自建镜像方案

下篇要不要来个“Verdaccio 企业级部署实战”?评论区见!

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7