2026 年 4 月 27 日 21:06 UTC,npm 状态页把 www.npmjs.com website 标成了 Major Outage。官方说明很短:正在调查。

容易误读的地方也在这里:红的是网站,不是 npm 全套服务。至少从状态页看,包安装、发布、搜索、安全审计、复制源还在正常运行。

对前端和 Node.js 开发者,这个区别很要命。网页打不开,会影响查包、看 README、管理包信息;registry 真挂了,才可能把安装、构建、发布一起拖下水。

状态页只证明网站故障,不证明 npm 全面宕机

这次状态页给出的信息很窄,但足够划边界。

服务当前状态90 天 uptime
www.npmjs.com websiteMajor Outage99.96%
Package installationOperational99.98%
Package publishingOperational100.0%
Package searchOperational100.0%
Security AuditOperational100.0%
Replication FeedOperational100.0%

官方目前只确认了两件事:网站出现 Major Outage;事故仍在 Investigating。

没有根因。没有恢复时间。没有复盘。也没有证据显示 registry、npm install、包发布、CI/CD 已经同步故障。

所以现在能说的是:依赖 npm 网站查包、浏览文档、查看包主页、处理网页端管理动作的开发者和团队,会受到影响。

现在不能说的是:所有 npm install 都失败了,所有发布都暂停了,所有构建流水线都崩了。状态页没这么写,就别替事故升级。

这类消息最容易从“网站挂了”滑到“供应链瘫了”。但工程判断不能靠截图情绪,得看链路。

真正受影响的是网页使用者,不一定是构建流水线

如果你是普通前端开发者,最直接的影响可能是这些:包主页打不开,README 不好查,依赖信息不好看,网页端操作受阻。

这很烦,但还不是同一种级别的事故。

对技术团队来说,更实用的做法不是转发“npm 挂了”,而是马上拆三件事:

  • 本地和 CI 里的 npm install 是否真的失败;
  • 失败日志指向 registry、网络、鉴权,还是只是网页访问;
  • 锁文件、私有缓存、镜像源、内部制品库是否能兜住构建。

如果 CI 仍能安装依赖,就不要把网页故障当成发布冻结的理由。该延后的,是依赖网页端确认信息、改包元数据、做人工审核的动作。

如果 CI 开始失败,也别直接归因给这次网站 Major Outage。要看错误是否指向安装服务或 registry 连接。状态页目前显示 Package installation 仍为 Operational,这个现实约束不能跳过。

企业团队更该做的是降低误报成本。监控里要把 npm 网站访问、registry 拉包、发布接口分开看。一个红灯不能代表整栋楼断电。

这次要盯的变量:红灯会不会从门面烧到仓库

我更在意的不是 npm 网站这一次挂了多久,而是红灯会不会扩散。

接下来最该看两个变量。

观察变量为什么重要当前能否下结论
Package installation 是否从 Operational 变更关系到本地安装、CI 构建、自动化部署不能,目前仍为 Operational
官方是否给出根因和恢复时间关系到是否只是网站层故障,还是后端依赖链问题不能,目前仍为 Investigating

这就是展示层和供应链核心层的区别。

npm 网站像门面,registry 和安装发布链路更像仓库和运输线。门面关了,开发者体验会断;仓库停了,工程生产才会停。

“皮之不存,毛将焉附”在这里并不完全适用。今天更像皮肤破了,骨架仍在。疼是真的疼,但不能诊断成骨折。

公共基础设施的麻烦就在这里。平时大家把 npm 当水电用,装包、发包、审计、查依赖,都像自然存在。水电一闪,才想起背后有管线、权限、缓存、状态页和应急预案。

这不是 npm 独有的问题。铁路、电力、报业、互联网平台都走过这条路:早期提供便利,中期形成依赖,后期变成治理问题。技术越顺手,用户越容易忘记它不是免费的稳定。

但这次不能借题发挥过头。90 天 uptime 显示,网站 99.96%,安装 99.98%,发布、搜索、审计、复制源 100.0%。这些数字不能证明今天没有影响,却能提醒我们:别把一次网站 Major Outage 读成全系统崩塌。

真正成熟的团队,要把依赖链画细一点。

网站打不开,影响查证和管理。安装服务异常,影响构建。发布服务异常,影响发版。审计服务异常,影响安全流程。复制源异常,影响镜像和同步。

事故分层越清楚,动作越不慌。

今天的结论很简单:npm 红了,但红在网站。后面如果安装、发布、搜索这些核心项也变红,那才是另一篇文章。