淘宝 NPM 镜像站切换新域名啦
镜像下载、域名解析、时间同步请点击 阿里云开源镜像站
源起
淘宝 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 的域名注册、证书更新、合规等许多复杂流程。
最后,为了国内开发者能尽可能早的完成切换,烦请大家积极转告以及帮助传播,谢谢。
淘宝 NPM 镜像站切换新域名啦的更多相关文章
- laravel 淘宝 NPM 镜像
淘宝 NPM 镜像:http://npm.taobao.org/ 这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步. 当前 ...
- 如何使用 淘宝 NPM 镜像
淘宝 NPM 镜像 原文链接 http://npm.taobao.org/ 这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同 ...
- 摆脱npm的网络问题: 淘宝npm镜像
在使用npm install的时候, 经常会因为网络问题, 各种安装不顺利, 一个字'烦躁'. 自从遇上淘宝npm之后,执行cnpm install之后, 怎一个'快'字了得. 闲话不多说, 直接上干 ...
- 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以上版本的支持 ...
- npm太慢, 淘宝npm镜像使用方法
淘宝 npm 地址: http://npm.taobao.org/ 如何使用 有很多方法来配置npm的registry地址,下面根据不同情境列出几种比较常用的方法.以淘宝npm镜像举例: 1.临时使用 ...
- 使用淘宝npm镜像
我们都知道淘宝大量采用了Nodej技术,所以它的镜像还是值得肯定的!更多相关可查看:淘宝NPM镜像 npm的官方镜像在国内访问是比较慢的,所以替代方法是使用淘宝npm镜像! 淘宝 NPM 镜像是一个完 ...
- nodejs npm 使用淘宝 NPM 镜像
使用淘宝 NPM 镜像 大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像. 淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读), ...
- 淘宝npm镜像使用
淘宝NPM镜像使用 镜像使用方法 1.config命令 npm config set registry https://registry.npm.taobao.org npm info undersc ...
- 使用淘宝 NPM 镜像
http://www.runoob.com/nodejs/nodejs-npm.html ************************************** 大家都知道国内直接使用 npm ...
随机推荐
- go基础——基本数据类型
GO语言的数据类型: /* GO语言的数据类型: 1.基本数据类型: 布尔类型:true,false 数值类型:整数,浮点,复数complex 字符串:string 2.复合数据类型 array,sl ...
- rabbitmq集群实现
官方文档 一.环境准备 1.1 IP地址规划 1.2 配置主机域名解析 ##每个节点修改主机名 # hostnamectl set-hostname mq1.example.local # hostn ...
- Ubuntu18 用新用户登录后退格键/方向键/制表键 乱码
Ubuntu18新建用户后,用新用户登录,此时 退格键Backspace 变成了 ^H,且方向键.制表键.Del键等均失效 这样会造成很多的麻烦,解决方式有两种: 方式1:Ctrl + Backspa ...
- 5、前端--js常量、变量、5种基本数据类型(number string boolean undefined object)、运算符、流程控制、三元运算符、函数、自定义对象、内置对象、BOM操作
变量与常量 在JS中声明变量需要使用关键字 老版本 var(全部都是全局变量) 新版本 let(可以声明局部变量) # 推荐使用let(其实问题不大) 在JS中声明常量也需要使用关键字 const # ...
- GAN实战笔记——第三章第一个GAN模型:生成手写数字
第一个GAN模型-生成手写数字 一.GAN的基础:对抗训练 形式上,生成器和判别器由可微函数表示如神经网络,他们都有自己的代价函数.这两个网络是利用判别器的损失记性反向传播训练.判别器努力使真实样本输 ...
- 图解python | 简介
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...
- DotNet Dictionary 实现简介
一:前言 本来笔者对DotNet的Hashtable及Dictionary认识一直集中在使用上,一个直接用object 一个可以用泛型,以前也只大概看过Hashtable的实现.最近查MSDN时发现有 ...
- HTTP攻击与防范-命令注入攻击
实验目的 1.了解命令注入攻击攻击带来的危险性. 2.掌握命令注入攻击攻击的原理与方法 3.掌握防范攻击的方法 实验原理 1.了解命令注入攻击攻击攻击带来的危险性. 2.掌握命令注入攻击攻击攻击的原理 ...
- 【C# TAP 异步编程】四、SynchronizationContext 同步上下文|ExecutionContext
一.同步上下文(SynchronizationContext)概述 由来 多线程程序在.net框架出现之前就已经存在了.这些程序通常需要一个线程将一个工作单元传递给另一个线程.Windows程序以消息 ...
- 【C#基础概念】函数参数默认值和指定传参和方法参数
函数参数默认值和指定传参 最近在编写代码时发现介绍C#参数默认值不能像PL/SQL那样直接设置default,网上也没有太多详细的资料,自己琢磨并试验后整理成果如下: C#允许在函数声明部分定义默认值 ...