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

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

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

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

常用命令

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

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

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

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

--depth=0 是关键:不加它会展开整棵依赖树(几百上千行),加了只看顶层。

输出怎么看

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

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

  • extraneous:装了但 package.json 没声明;
  • UNMET DEPENDENCY:声明了但没装上(依赖树有问题)。

实用技巧

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

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

常见问题(FAQ)

Q:npm list 报一堆 ERR! 但项目跑得起来?
通常是 peerDependencies 未满足的警告级问题。项目能跑就可以先忽略,但升级大版本前建议理顺。

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

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

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

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

立即开始

选择观测云版本

代码托管平台