如何列出 npm 已安装的包(本地/全局)?

列出 npm 已安装包:npm list 看项目依赖树,npm list -g --depth=0 看全局顶层包,npm ls --depth=0 看项目顶层依赖。本文说明各命令差异与实用过滤技巧。

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

看全局已装包:npm list -g --depth=0;看项目依赖:npm ls --depth=0。

常用命令

# 项目依赖的完整树(含子依赖,输出很长)
npm list --all

# 项目顶层依赖(package.json 里声明的那些)
npm ls --depth=0

# 全局安装的顶层包
npm list -g --depth=0

# 查某个特定包的安装情况
npm list lodash

--depth=0 是关键:现代 npm 默认深度通常为 0;需要完整逻辑依赖树时显式使用 --all。不同版本默认行为可能不同。

输出怎么看

├── express@4.19.2
├── lodash@4.17.21
└── typescript@5.4.5

版本号就是实际安装的版本。输出末尾可能出现标注:

  • extraneous:磁盘中存在但当前逻辑依赖树不需要的包,并非所有未在顶层声明的传递依赖;
  • UNMET DEPENDENCY:声明了但没装上(依赖树有问题)。

实用技巧

# 只看生产依赖(不看 devDependencies)
npm ls --omit=dev --depth=0

# 检查哪些包有新版本
npm outdated

常见问题(FAQ)

Q:npm list 报一堆 ERR! 但项目跑得起来?
可能存在缺失、无效版本或 peer 冲突;应检查具体错误与退出码,当前某条运行路径成功不证明依赖树正确。

Q:全局包列表想导出分享?
npm list -g --depth=0 > global-packages.txt 重定向到文件即可。

Q:怎么知道全局某个命令是哪个包装的?
which <命令> 找到可执行文件路径,软链指向的目录就是所属包;或 npm ls -g | grep 包名。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

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

立即开始

选择观测云版本

代码托管平台