如何查看已安装 npm 包的版本?

查看已装包版本用 npm list <包名>;查 registry 的 latest 标签版本用 npm view <包名> version;列出全部顶层依赖用 npm ls --depth=0,加 -g 看全局。本文汇总常用命令。

最佳实践
文件、模块与依赖组织示意

查本地已装版本:npm list <包名>。

常用命令速查

# 查看某个包的已安装版本(含依赖它的包)
npm list lodash

# 查看配置的 registry 上 latest dist-tag 指向的版本(不必是版本号最大的发布)
npm view lodash version

# 列出项目所有顶层依赖及版本(不展开子依赖)
npm ls --depth=0

# 查看全局安装的包
npm ls --depth=0 --global

# 查看某包的所有可用版本
npm view lodash versions

其他途径

看 package.json:dependencies/devDependencies 里记录的是版本范围(如 ^4.17.21),不是实际安装版本。

看 package-lock.json:packages 节点下记录的是锁定的精确版本,不证明磁盘 node_modules 当前与其一致。

代码里读(运行时):

const { version } = require('lodash/package.json');
console.log(version);

某些包的 exports 不允许读取 package.json,运行时 require 该子路径可能失败;此时用 npm ls 或包自身公开的版本 API。

常见问题(FAQ)

Q:npm list 报 "extraneous" 是什么意思?
包被装在了 node_modules 里但 package.json 没声明(手动 npm install 没加 --save 的历史遗留)。可以删掉重装,或 npm prune 清理。

Q:npm ls 输出大量 "unmet dependency"?
可能是缺失依赖、版本不满足或 peer dependency 冲突,先读具体条目。已审阅且与 package.json 一致的锁文件可用 npm ci 重建安装树;不要把删除锁文件当默认修复,它会改变解析结果。

Q:想看某个包为什么被安装(谁依赖它)?
npm explain <包名>(或 npm why <包名>)会列出依赖路径。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台