我如何列出用户安装/环境包只在npm?

当我执行npm -g list时,它会输出每个包及其依赖项。相反,我希望看到包安装在当前工作的项目或环境中。


当前回答

npm list -g --depth=0

npm: Node.js包管理器命令行工具 List -g:显示在用户文件夹中找到的每个包的树(没有-g选项,它只显示当前目录的包) ——depth 0 /——depth=0:避免在树视图中包含每个包的依赖项

其他回答

Node.js有局部模块和全局模块的概念。

本地模块位于当前项目目录中。

全局模块通常位于用户的主目录中,尽管我们可以更改全局模块所在的路径。

列出当前目录中的本地模块:npm list npm list——global OR npm list——g //列出所有顶级模块及其依赖项 只列出顶层(已安装的模块)全局模块:npm List -g——depth=0

截至2015年12月13日

虽然我发现这个公认的答案是100%正确和有用的,但我希望根据我自己的经验对它进行一些扩展,希望对其他人也有好处。(这里我交替使用术语包和模块)

在回答这个问题时,是的,公认的答案是:

npm list -g --depth=0

您可能希望在类unix系统上或当grep可用时检查全局安装的特定模块。这在检查您正在使用的模块的版本时特别有用(全局安装;如果检查的是本地模块,只需删除-g标志):

npm list -g --depth=0 | grep <module_name>

如果你想查看特定模块的所有可用(远程)版本,请执行以下操作:

npm view <module_name> versions

注意,versions是复数形式。这将为您提供可供选择的完整版本列表。

最新远程版本:

npm view <module_name> version

注意,version是单数。

要找出哪些包需要更新,您可以使用:

npm outdated -g --depth=0

要更新全局包,可以使用

npm update -g <package>

要更新所有全局包,您可以使用:

npm update -g

(但是,对于低于2.6.1的npm版本,也请查看此链接,因为有一个特别的脚本,建议用于全局更新所有包。)

以上命令应该适用于NPM 1.3版本。1.4 x。x, 2。X和3.x。

npm list -g --depth=0

npm: Node.js包管理器命令行工具 List -g:显示在用户文件夹中找到的每个包的树(没有-g选项,它只显示当前目录的包) ——depth 0 /——depth=0:避免在树视图中包含每个包的依赖项

一种方法可能是使用以下命令找到模块的根目录:

npm root

输出:

    /Users/me/repos/my_project/node_modules

然后列出该目录…

ls /Users/me/repos/my_project/node_modules

输出:

    grunt                   grunt-contrib-jshint

在本例中,用户安装的包是grunt和grunt-contrib-jshint。

> =或:

npm ls -g

<或:

npm ls -g --depth=0

参考:

NPM ls默认情况下只打印第一级依赖项。你可以使用——depth=<n>来设置一个特定的深度,或者——all来打印所有的树。

有关最新版本,请参阅npm文档:npm-ls, depth