镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

源起

淘宝 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 新域名,这是我们独立注册和备案的域名。

随着新的域名已经正式启用,老 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 的域名注册、证书更新、合规等许多复杂流程。

最后,为了国内开发者能尽可能早的完成切换,烦请大家积极转告以及帮助传播,谢谢。

淘宝 NPM 镜像站切换新域名啦的更多相关文章

  1. laravel 淘宝 NPM 镜像

    淘宝 NPM 镜像:http://npm.taobao.org/ 这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步. 当前 ...

  2. 如何使用 淘宝 NPM 镜像

    淘宝 NPM 镜像 原文链接 http://npm.taobao.org/ 这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同 ...

  3. 摆脱npm的网络问题: 淘宝npm镜像

    在使用npm install的时候, 经常会因为网络问题, 各种安装不顺利, 一个字'烦躁'. 自从遇上淘宝npm之后,执行cnpm install之后, 怎一个'快'字了得. 闲话不多说, 直接上干 ...

  4. CentOS安装node.js-8.11.1+替换淘宝NPM镜像

    注:以下所有操作均在CentOS 6.8 x86_64位系统下完成. #准备工作# 由于node.js-8.11.1在源码编译安装的时候需要gcc 4.9.4或clang++ 3.4.2以上版本的支持 ...

  5. npm太慢, 淘宝npm镜像使用方法

    淘宝 npm 地址: http://npm.taobao.org/ 如何使用 有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法.以淘宝npm镜像举例: 1.临时使用 ...

  6. 使用淘宝npm镜像

    我们都知道淘宝大量采用了Nodej技术,所以它的镜像还是值得肯定的!更多相关可查看:淘宝NPM镜像 npm的官方镜像在国内访问是比较慢的,所以替代方法是使用淘宝npm镜像! 淘宝 NPM 镜像是一个完 ...

  7. nodejs npm 使用淘宝 NPM 镜像

    使用淘宝 NPM 镜像 大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像. 淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读), ...

  8. 淘宝npm镜像使用

    淘宝NPM镜像使用 镜像使用方法 1.config命令 npm config set registry https://registry.npm.taobao.org npm info undersc ...

  9. 使用淘宝 NPM 镜像

    http://www.runoob.com/nodejs/nodejs-npm.html ************************************** 大家都知道国内直接使用 npm ...

随机推荐

  1. 「 题解 」P2487 [SDOI2011]拦截导弹

    简单题意 给定 \(n\) 个数对 \((h_i, v_i)\). 求: 最长不上升子序列的长度. 对于每个 \(i\),分别求出包含数对 \((h_i, v_i)\) 的最长上升子序列的个数和最长不 ...

  2. 【web安全】Nodejs原型链污染分析

    Nodejs原型链污染分析 什么是js原型? 可以将js原型理解为其他OOP语言中的类,但还是有细微区别. 1. function F(){...} 2. var f = new F(); 分析: 1 ...

  3. 取代 Mybatis Generator,这款代码生成神器配置更简单,开发效率更高!

    作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper. Mybatis Generator 是 ...

  4. 系统操作命令实践 下(系统指令+增删改查+vim编辑器)

    目录 1.考试 2.今日问题 3.今日内容 4.复制文件 4.移动文件 Linux文件查看补充 cat , nl 5.删除文件 6.系统别名 7.vi/vim编辑器 系统操作命令实践 下(系统指令+增 ...

  5. Solution -「洛谷 P6158」封锁

    \(\mathcal{Description}\)   Link.   给定一个 \(n\times n\) 的格点图,横纵相邻的两格点有一条边权为二元组 \((w,e)\) 的边.求对于 \(S=( ...

  6. tip5:tomcat9日志及控制台中文乱码

    1.conf/logging.properties文件所有UTF-8相关全部注释 2.bin/catalina.bat文件中添加set "JAVA_OPTS=-server -Dfile.e ...

  7. Spring Boot自动配置实战

    上篇讲述了Spring Boot自动配置的原理,本篇内容就是关于该核心原理的实际应用.需求即当某个类存在的时候,自动配置这个类的bean并且这个bean的属性可以通过application.prope ...

  8. 看SparkSql如何支撑企业数仓

    企业级数仓架构设计与选型的时候需要从开发的便利性.生态.解耦程度.性能. 安全这几个纬度思考.本文作者:惊帆 来自于数据平台 EMR 团队 前言 Apache Hive 经过多年的发展,目前基本已经成 ...

  9. MybatisPlus字段自动填充配置

    实体类 @ApiModelProperty(value = "创建时间") @TableField(fill = FieldFill.INSERT) private Date gm ...

  10. Vue 源码解读(5)—— 全局 API

    目标 深入理解以下全局 API 的实现原理. Vue.use Vue.mixin Vue.component Vue.filter Vue.directive Vue.extend Vue.set V ...