【公告】淘宝 npm 域名即将切换 && npmmirror 重构升级

本文涉及的产品
.cn 域名,1个 12个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 淘宝NPM 镜像站喊你切换新域名啦。新的Web 站点:https://npmmirror.com,Registry Endpoint:https://registry.npmmirror.com。http://npm.taobao.org 和 http://registry.npm.taobao.org 将在 2022.06.30 号正式下线和停止 DNS 解析。

前言

本文将包括两部分内容:

  • 淘宝 npm 域名即将停止解析
  • npmmirror 镜像站大重构升级

原淘宝 npm 域名即将停止解析

正如在《淘宝 NPM 镜像站喊你切换新域名啦》 中预告的那样:

http://npm.taobao.orghttp://registry.npm.taobao.org将在 2022.06.30 号正式下线和停止 DNS 解析

域名切换规则:


因此,有强依赖老域名的各位开发者请尽快更新到新域名,可能受到的影响和处理方式

  • 企业用户需要联系 网管/IT/SRE 更新防火墙白名单
  • 存量应用的 lock 文件,开发者需要自行执行 sed 等指令去替换或重新生成。
  • 本地 npmrc 里面的 registry 地址(如果有,则)需要开发者自行更新。
  • 开发者自己的 CL 工具 或 平台应用 里面写死的地址,需开发者自己更新并部署。
  • cnpm cli / nrm 等工具,对应的社区同学已经提 PR 更新,大家重新安装最新版本即可。(如发现遗漏麻烦知会下我们)


BTW:我们新的品牌名为: npmmirror 中国镜像站



npmmirror 中国镜像站大重构升级

我们的 npmmirror 镜像站,自 2014 年正式对外服务以来,不知不觉已经 8 年,2021 年全年的包下载量高达 260 亿次(比 2020 年增长 1.5 倍)。

这些年来,Node.js 领域的技术在快速的迭代升级,我们原来的架构已经很难支撑当今如此大体量的前端生态,因此在 2021 年我们启动了技术升级,并于春节前已经切换完成


同步逻辑优化

早期我们同步 npm 源站的方式,是没有补偿机制的,所以当因为不可抗力导致同步失败时,需要社区开发者手动执行 cnpm sync 同步下。

在本次优化中,我们实现了一个简单的任务系统,来提供更好的同步补偿机制。


非常感谢阿里云这么多年来的对中国 npmmirror 镜像服务的开源赞助,只能靠仅有的广告位和每年的感谢帖子来回报这份天价的云资源账单。

这一次重构之后,我们验证下来至少可以节省一半的云服务器资源,也算是让阿里云的开源赞助可以减轻一些成本负担。


完全重写的代码

第一点是框架升级,原有的代码 是基于 Koa 的,现基于 Egg 的 TypeScript 模式完全重构:cnpm/cnpmcore

@HTTPController()
export class DownloadController extends AbstractController {
  @Inject()
  private packageVersionDownloadRepository: PackageVersionDownloadRepository;
  @HTTPMethod({
    path: `/downloads/range/:range/:fullname(${FULLNAME_REG_STRING})`,
    method: HTTPMethodEnum.GET,
  })
  async showPackageDownloads(@HTTPParam() fullname: string, @HTTPParam() range: string) {
    // ...
  }
}


同时,目录结构基于 DDD 领域驱动设计方式,https://www.yuque.com/liberty/rf322x

app
├── common
│   └── adapter     # 外部服务调用
├── core
│   ├── entity      # 核心模型,实现业务行为
│   ├── event       # 异步事件定义,以及消费,串联业务
│   ├── service     # 核心业务逻辑
│   └── util    
├── repository
│   └── model      # ORM 模型,数据定义
├── port
│   └── controller # HTTP Controller
├── schedule       # 定时任务
└── test           # 单测


同时,我们的监控体系也切换为基于 Egg 的 Easy-Monitor


可能存在的问题

鉴于我们是全新架构大重构,尽管我们已经在春节前完成了老数据的全量迁移,但也引起了一些数据同步问题,在此给您带来的不便表示抱歉。

如果遇到 包版本mirror 大包同步缺漏问题,可以先手动 sync 一次。如还有问题,可以通过 cnpm issue 反馈,我们将在第一时间处理,请大家多体谅。

相关文章
|
7月前
|
资源调度 JavaScript
nodeJS 的 npm 设置国内高速镜像之淘宝镜像的方法
nodeJS 的 npm 设置国内高速镜像之淘宝镜像的方法
6079 2
|
7月前
|
Ubuntu
node、npm 命令升级
node、npm 命令升级
134 0
|
7月前
|
资源调度
#发布npm包遇到错误,因为用了淘宝镜像地址的原因的解决方法-403 403 Forbidden - PUT https://registry.npmmirror.com/-/user/org.cou
#发布npm包遇到错误,因为用了淘宝镜像地址的原因的解决方法-403 403 Forbidden - PUT https://registry.npmmirror.com/-/user/org.cou
437 0
|
JavaScript
Node.js npm设置淘宝npm镜像
Node.js npm设置淘宝npm镜像
1618 0
|
JavaScript 网络协议 前端开发
原淘宝 npm 域名即将停止解析,请切换至新域名(npm无响应)
原淘宝 npm 域名即将停止解析,请切换至新域名(npm无响应)
|
4月前
|
人工智能 网络协议 小程序
重磅升级!阿里云推出首个域名AI大模型应用
重磅升级!阿里云推出首个域名AI大模型应用
411 6
|
4月前
Mac卸载 Node npm,升级 Node
Mac卸载 Node npm,升级 Node
71 0
|
5月前
npm-check【实用教程】升级项目中的依赖
npm-check【实用教程】升级项目中的依赖
95 0
|
5月前
[已解决]npm淘宝镜像最新官方指引(2023.08.31)
[已解决]npm淘宝镜像最新官方指引(2023.08.31)
3289 0
|
7月前
|
域名解析 网络协议 安全
【域名解析DNS专栏】DNS-over-TLS与DNS-over-HTTPS:安全升级新标准
【5月更文挑战第26天】随着网络技术的发展,DNS协议面临安全挑战,DNS-over-TLS (DoT) 和 DNS-over-HTTPS (DoH) 作为解决方案出现,旨在通过加密增强隐私和安全。DoT使用TLS封装DNS查询,防止流量被窥探或篡改;DoH则利用HTTPS隐藏DNS查询。实施DoT需在客户端和服务器间建立TLS连接,DoH需DNS服务器支持HTTPS接口。这两种技术为网络安全提供支持,未来有望更广泛部署,提升网络环境的安全性。
655 0