2026 年 4 月 27 日 21:06 UTC,npm 状态页把 www.npmjs.com website 标成了 Major Outage。官方说明很短:正在调查。
容易误读的地方也在这里:红的是网站,不是 npm 全套服务。至少从状态页看,包安装、发布、搜索、安全审计、复制源还在正常运行。
对前端和 Node.js 开发者,这个区别很要命。网页打不开,会影响查包、看 README、管理包信息;registry 真挂了,才可能把安装、构建、发布一起拖下水。
状态页只证明网站故障,不证明 npm 全面宕机
这次状态页给出的信息很窄,但足够划边界。
| 服务 | 当前状态 | 90 天 uptime |
|---|---|---|
| www.npmjs.com website | Major Outage | 99.96% |
| Package installation | Operational | 99.98% |
| Package publishing | Operational | 100.0% |
| Package search | Operational | 100.0% |
| Security Audit | Operational | 100.0% |
| Replication Feed | Operational | 100.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 红了,但红在网站。后面如果安装、发布、搜索这些核心项也变红,那才是另一篇文章。