用 npm outdated 先看依赖能升到哪

21 次浏览3 条回复

想升级依赖但不想一上来就改文件,可以先看看当前版本、期望版本和最新版本差多少。

环境:Node.js 18+,npm 9+,在项目根目录执行:

npm outdated

输出里常见几列:Current 是现在装的版本,Wanted 是按 package.json 范围能升到的版本,Latest 是 registry 上最新发布的版本。

如果只想看生产依赖,可以加:

npm outdated --omit=dev

这个命令只是读取依赖信息,不会改 package.json 或 lockfile。真正升级前还是建议先跑项目自己的测试或 typecheck,别只看版本号。

这个命令还可以顺手加 --json 给脚本用:

npm outdated --json

不过没过期依赖时可能没有正常列表输出,脚本里最好把空结果也当成一种状态处理,别直接按“有内容才成功”来写。

还有个小细节:Wanted 不一定等于 Latest,它会受 package.json 里的版本范围限制。

所以看到某个包 Latest 高很多时,我会先判断是不是跨大版本,再决定要不要手动改版本范围。直接 npm update 通常只会追到 Wanted 那一档,比较不容易误升大版本。

如果想连间接依赖也扫一眼,可以试下:

npm outdated --all

环境还是 Node.js 18+ / npm 9+。这个输出会比默认多不少,更适合排查 lockfile 里到底哪些包落后了;平时只看自己项目直接声明的依赖,用默认的 npm outdated 就够了。