源起
淘宝 NPM 镜像站(npm.taobao.org)自 2014 年 正式对外服务,一开始只是想简单地做 NPM 的中国镜像站点,回馈国内前端社区,不知不觉竟然一直运行到现在。当年参考 Ruby Gems 淘宝镜像
的方式,跟阿里开源组织申请了 taobao.org 的二级域名,镜像站点名称也自然而然地取名为 淘宝 NPM 镜像站
(下称 CNPM)。
图片来源:https://time.graphics/line/579718
如上图,从 2014 年 CNPM 正式提供服务到今天,NPM 包从 10 万 → 178 万,CNPM 的包下载回源量从 1 亿 → 200 亿,这还只是 CDN 回源站的量,算真实下载量就更多了。
可以毫不谦虚的说, CNPM 见证了国内前端蓬勃发展的这 8 年,未来我们希望继续陪伴中国的前端开发者持续走下去。
PS:虽然核心参与者大部分来自国内大厂,不过 CNPM 本身是一个中立的公益项目,日常巨大的运维费用均来自社区捐赠。
新的起航
随着前端的蓬勃发展, NPM 包数据量和内容复杂度仍在不断地加速增长,CNPM 当年的架构已经很难满足当今的形势。
为了提供更稳定、更安全、更符合国家法律法规要求的镜像服务,我们今年启动了 CNPM 的优化工作:
- 启动新的域名。
- Registry 全面重构,提升稳定性,降低同步失败率。
- CLI 优化,提升安装速度,去掉软连接等带来的兼容性问题。
- 沉淀自企业级大规模应用的使用经验手册。
- 等等。。。
应该有不少开发者已经发现,访问淘宝 NPM 已经会自动 301 跳转到 npmmirror.com 新域名,这是我们独立注册和备案的域名。
- Web 站点:https://npmmirror.com
- Registry Endpoint:https://registry.npmmirror.com
随着新的域名已经正式启用,老 npm.taobao.org 和 registry.npm.taobao.org 域名将于 2022 年 05 月 31 日零时起停止服务。
可能受到的影响和处理方式
- 企业用户需要联系 网管/IT/SRE 更新防火墙白名单。
- cnpm 自身的 CLI,我们会对每个大版本都发个 patch 去更新,开发者重新安装即可。
- nrm 等工具,需要提 PR 去更新内置的域名。
- 一些开发者自己封装的工具,如 egg-init,需要维护者自行提 PR 去更新。
- 存量应用的 lock 文件,开发者需要自行执行 sed 等指令去替换或重新生成。
- 本地 npmrc 里面的 registry 地址,(如果有,则)需要开发者自行更新。
- 平台应用里面写死的,需开发者自己更新并部署。
恳请有强依赖老域名的各位开发者尽快更新到新域名,企业用户可能还需要联系网管/IT/SRE 更新防火墙白名单。当然如果你使用的是 cnpm 的 CLI 命令行工具,我们会去全部替换并发布新版本,大家只需要重新安装到最小版本即可。
我们深知更换域名并停止对老域名的支持是一种体验非常不好的事情,但为了能在符合网站合规运营要求的情况下,可以更长期可持续运行下去,我们还是最终做出这个更换域名的决定,再次说声抱歉。
其他功能正在开发中,欢迎围观 GitHub ,更期待您能提 PR 参与开源共建。
特别感谢
非常感谢 阿里云开源镜像站 对淘宝 NPM 镜像站这些年来的持续赞助,才让我们可以不为巨大流量和存储费用而烦恼,才让我们可以持续专注做好专业的技术工作。
还要特别感谢 淘宝前端团队,帮助我们处理这些来年关于 npm.taobao.org 的域名注册、证书更新、合规等许多复杂流程。
最后,为了国内开发者能尽可能早的完成切换,烦请大家积极转告以及帮助传播,谢谢。