最可靠方式是运行 npm list -g --depth=0,它只显示顶层全局包,避免嵌套依赖干扰;需确保 vscode 终端环境变量生效,路径匹配 npm config get prefix。

直接运行 npm list -g --depth=0 查看已安装的全局模块
这是最可靠、零配置的方式。Node 自带的 npm 命令就能完成,不需要额外插件或脚本。
在 VSCode 集成终端(Ctrl + ~)中执行该命令,输出形如:
├── npm@10.8.2 ├── nodemon@3.1.4 └── typescript@5.5.4
注意:--depth=0 是关键——它只显示顶层包,避免被子依赖淹没。不加这个参数,你会看到几百行嵌套依赖,完全无法快速识别“你主动装了什么”。
为什么不用 npm ls -g 或 npm list -g?
这两个命令默认不加 --depth,会递归列出所有依赖树,尤其当装过 create-react-app 或 vue-cli 这类工具时,输出可能长达 2000+ 行,实际有效信息不到 10 个。
常见误操作:
- 复制粘贴时漏掉
--depth=0,结果卡住几秒后看到满屏树状结构,误以为命令出错 - 在 PowerShell 中用
npm list -g | more分页,但 Windows 下more对 Unicode 支持差,中文包名显示为乱码
VSCode 终端里快速复用命令的技巧
避免每次手动输入,推荐两种轻量方式:
- 把
npm list -g --depth=0加到 VSCode 的tasks.json里,绑定快捷键(比如Ctrl+Shift+P→ “Tasks: Run Task” → 选它) - 在终端历史中按
↑键调出上一条命令,再按Enter—— VSCode 终端会记住同一窗口内所有命令历史
别依赖“右键菜单添加任务”,VSCode 的任务系统对简单 shell 命令支持不稳定;也别用扩展试图“图形化展示全局模块”,目前没有插件能准确区分 -g 安装和 node_modules/.bin 软链接带来的假阳性。
确认全局路径是否生效,避免漏查
有时 npm list -g 看不到刚装的包,不是命令问题,而是 npm 没指向你预期的全局位置。先运行:
npm config get prefix
如果输出是 C:\Users\XXX\AppData\Roaming\npm,但你想查的是 D:\npm-global,说明 node_path 环境变量没生效,或者 VSCode 终端没重启。
验证方式:在 VSCode 终端里执行 where npm(Windows)或 which npm(macOS/Linux),看路径是否与 npm config get prefix 匹配。不匹配就关掉所有 VSCode 窗口再重开。
真正容易被忽略的点:VSCode 启动时读取的是系统环境变量快照,改完 node_path 后只关终端不够,必须彻底退出 VSCode 再打开。











