
- 打开微信,搜索「软件教程管家」关注,或长按下方二维码关注
- 回复关键词 cnpmcore
- 公众号自动回复网盘链接,点击即可保存下载
打开微信扫一扫关注或搜索【软件教程管家】
| 项目 | cnpmcore |
|---|---|
| 仓库 | github.com/cnpm/cnpmcore |
| 开发语言 | TypeScript |
| 开源协议 | MIT |
| Star 数 | 738(2026-11-12 实测) |
| 一句话定位 | 基于 TypeScript 的自托管私有 NPM Registry |
如果你所在的团队需要一个自己说了算的私有 NPM Registry,cnpmcore 是一个值得评估的自托管方案。它用 TypeScript 重新实现了 cnpmjs.org 的核心能力,提供标准的 Registry HTTP API,支持私有包发布、上游同步和管理接口,部署方式以 Docker 为主,适合有一定运维能力的开发团队自己搭、自己管。
cnpmcore 是什么
cnpmcore 是一个自托管的私有 NPM Registry 服务端实现。它面向的场景很明确:企业内部的 JavaScript / TypeScript 包管理。团队的私有包不再需要放在公网 Registry 上,而是发布到自己部署的 cnpmcore 实例里,npm、pnpm 等客户端通过标准 Registry 协议直接访问。
项目提供两类接口:一类是面向 npm 客户端的标准 Registry HTTP API,安装、发布、查询包都走这套协议;另一类是内部 HTTP API,用于包同步、管理和其他高级操作。实现语言是 TypeScript,熟悉 Node.js 技术栈的团队读源码、做二次开发的门槛比较低。
适合哪些场景
- 企业内部私有包管理:团队内部的公共组件、工具库只对内发布,不走公网 Registry,版本和访问权限自己控制。
- 搭建 NPM 镜像服务:为内网或受限网络环境提供 npm 包的镜像与缓存,解决外网访问慢或不稳定的问题。
- 包同步与定制流程:需要把上游包同步到内部 Registry,或围绕包的发布、同步、管理接口开发定制流程的团队。
- 学习 Registry 实现:想了解一个 NPM Registry 服务端如何实现的开发者,可以直接读 TypeScript 源码。
自托管部署:Docker 三步跑起来
cnpmcore 官方提供了 Docker 部署文档,覆盖配置、启动和健康检查。部署前先准备好运行依赖:MySQL 用作数据存储,Redis 用作缓存,开发环境还可以用 GitHub Codespaces 或 Dev Containers 快速准备。
- 准备依赖:按部署文档准备 MySQL 与 Redis,开发调试可以直接用项目提供的 Codespaces 或 Dev Containers 环境,里面已经预配了数据库。
- 写配置并启动:按 Docker 部署文档填写启动参数与数据库连接配置,然后启动容器,服务起来后通过健康检查接口确认状态正常。
- 让客户端指向私有地址:在开发机上执行
npm config set registry http://你的服务器地址,之后npm install就会从自建的 Registry 拉包;也可以只对某个 scope 单独指定,例如npm config set @你的scope:registry http://你的服务器地址。
发布第一个私有包
服务跑起来之后,发布私有包的流程和公网 Registry 完全一致:先在包目录确认 package.json 里的 name 与 version,然后执行 npm publish --registry http://你的服务器地址。发布成功后,团队成员用同一 Registry 地址安装即可,版本号按 semver 正常演进。
如果需要从上游同步公开包,项目提供的内部 HTTP API 支持包同步相关操作,具体同步策略、触发方式以官方 API 文档为准,建议先在测试环境跑通一轮再上生产。
注意事项
- 先确认权限模型:公开资料没有完整说明认证、权限模型与多租户能力,正式启用前务必阅读 API 文档或源码,确认发布权限、读取权限如何控制,避免私有包被意外公开或越权发布。
- 生产容量要自己压测:官方没有给出生产环境的容量、性能或高可用部署指标,并发量、包体规模大的团队上线前要先做压测,再决定资源规格与副本数。
- 数据库与缓存配置别漏:MySQL、Redis 及数据库初始化是部署的前提条件,启动失败先检查这两处的连接配置和初始化步骤,再看服务日志。
- 升级前先读变更说明:升级 cnpmcore 之前阅读版本变更内容,在测试环境验证包同步、管理接口与现有客户端流程,确认无误再升级生产实例。
- 做好备份:私有包与元数据都在自建的 MySQL 里,定期备份数据库,误删或故障时才能恢复。
同类对比
| 方案 | 定位 | 适合谁 |
|---|---|---|
| cnpmcore | TypeScript 实现的自托管私有 Registry,标准 Registry API + 同步/管理接口 | Node.js 技术栈团队,需要自托管和二次定制 |
| Verdaccio | 轻量私有 Registry,配置简单、依赖少 | 只想快速搭一个私有源、不想维护数据库的小团队 |
| Nexus / Artifactory | 通用制品库,支持 npm 之外的多种包格式 | 需要统一管理多种语言制品的大中型团队 |
| npmmirror 等公共镜像 | 公开镜像服务,只做加速、不托管私有包 | 只需要拉包加速、不需要私有发布的场景 |
一句话选型建议:只要一个轻量私有源,Verdaccio 更省事;要多语言制品统一管理,选 Nexus 或 Artifactory;团队以 Node.js 为主、又想自己掌控同步与管理流程,cnpmcore 更对口。
获取方式
GitHub 国内访问较慢,如打不开可多刷新几次

关注「软件教程管家」
回复软件名即取即下:网盘下载链接 + 提取码,一步直达,不用再跳转。
本站资源仅供个人学习交流,请勿用于商业用途。软件与资料版权归原作者所有;如有侵权,请通过公众号「软件教程管家」联系我们,我们将在 24 小时内下架处理。查看免责声明 ›
文章推荐
标签推荐
这款软件怎么样?
平均 暂无评分(0 人评)
取链次数:0
评分与投票来自真实访客,从 0 开始累计;觉得有用就点一下,帮更多人判断这款软件值不值得下。






