打印所有已安装node.js模块的列表

打印所有已安装node.js模块的列表,node.js,Node.js,在我正在编写的node.js脚本中,我希望将所有node.js模块(使用npm安装)打印到命令行。我该怎么做 console.log(__filename); //now I want to print all installed modules to the command line. How can I do this? 使用(甚至还有json输出) 从脚本中: test.js: function npmls(cb) { require('child_process').exec('

在我正在编写的node.js脚本中,我希望将所有node.js模块(使用npm安装)打印到命令行。我该怎么做

console.log(__filename);

//now I want to print all installed modules to the command line. How can I do this?
使用(甚至还有json输出)

从脚本中:

test.js:

function npmls(cb) {
  require('child_process').exec('npm ls --json', function(err, stdout, stderr) {
    if (err) return cb(err)
    cb(null, JSON.parse(stdout));
  });
}
npmls(console.log);
运行:


所有全球安装的第三方模块列表,写入控制台:

 npm -g ls

如果您只对全局安装的软件包感兴趣,而没有完整的目录树,那么:

npm-gls--depth=0

for package in `sudo npm -g ls --depth=0 --parseable`; do
    printf "${package##*/}\n";
done
或局部(省略-g):


npm ls--depth=0

通常,有两种方法列出已安装的软件包-通过命令行界面()或在应用程序中使用

for package in `sudo npm -g ls --depth=0 --parseable`; do
    printf "${package##*/}\n";
done
这两个命令都将以树形结构打印到安装的所有软件包版本及其依赖项


CLI 使用
-g
(全局)标志列出所有全局安装的软件包。使用
--depth=0
标志仅列出顶级软件包,而不是它们的依赖项


美国石油学会 在您的情况下,您希望在脚本中运行此操作,因此需要使用API。从文档中:

npm.commands.ls(args, [silent,] callback)
除了打印到标准输出,数据还将被传递到回调中。

在任何操作系统中

npm -g list

就是这样,为什么不从
package.json
中的
依赖项中获取它们呢

当然,这只会给你那些你实际保存的,但你无论如何都应该这样做

console.log(Object.keys(require('./package.json').dependencies));

在这种情况下,编写一个返回node.js modules文件夹路径的函数可能会很有用(如果可能的话)。一个跨平台的解决方案将是理想的。有关从目录获取文件列表的信息:可能的重复。另外,您如何获取模块文件夹的文件路径?路径将是node_modules/[module name]。我相信这应该适用于所有平台。请注意,这种方式只打印“本地”模块树,
requre
首先查看节点模块,然后查看../node\u模块,../node\u模块(请参阅),然后从节点路径env vartry
npm ls--parseable
查看路径列表,如指定--l或--long,
npm-gls--depth=0--long
。这提供了模块描述和github链接。如果您喜欢
npm ls
完整示例,请查看:是的,现在所有的my Bash都有
$()
,不会为您提供全局安装的软件包原始问题没有指定它们是否要包含全局安装的软件包。此答案为其他答案提供了一个有用的替代方案。此命令将比npm-g ls--depth=0花费更长的时间,因为它还将查找模块依赖项。感谢您指定npm具有可从应用程序访问的API。如何将参数传递给函数?我尝试了
npm.commands.ls([“depth=0”],…)
但它给了我错误,
npm.commands.ls([“prod”],…)
给了我一个空数组。。。。
console.log(Object.keys(require('./package.json').dependencies));