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

And*_*een 129 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?
Run Code Online (Sandbox Code Playgroud)

小智 254

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

npm -g ls --depth=0

或本地(省略-g):

npm ls --depth=0

  • 我喜欢指定--l或--long,`npm -g ls --depth = 0 --long`.这提供了模块描述和github链接. (6认同)

And*_*rov 99

使用npm ls(甚至有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);
Run Code Online (Sandbox Code Playgroud)

跑:

> node test.js
null { name: 'x11', version: '0.0.11' }
Run Code Online (Sandbox Code Playgroud)

  • 尝试`npm ls --parseable`只列出路径列表 (4认同)

hfa*_*azm 49

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

 npm -g ls
Run Code Online (Sandbox Code Playgroud)


Muh*_*sad 27

在任何操作系统中

npm -g list
Run Code Online (Sandbox Code Playgroud)

就是这样

  • 该命令将比`npm -g ls --depth = 0'花费更长的时间,因为它还会查找模块依赖性。 (2认同)

d4n*_*yll 7

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

这两个命令将stdout在树结构中打印到已安装的所有软件包版本及其依赖项.


CLI

npm list
Run Code Online (Sandbox Code Playgroud)

使用-g(global)标志列出所有全局安装的包.使用该--depth=0标志仅列出顶级包而不是其依赖项.


API

在您的情况下,您希望在脚本中运行它,因此您需要使用API​​.来自文档:

npm.commands.ls(args, [silent,] callback)
Run Code Online (Sandbox Code Playgroud)

除了打印到stdout,数据也将被传递到回调中.


neo*_*ojp 6

为什么不从抓住他们dependenciespackage.json

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

console.log(Object.keys(require('./package.json').dependencies));
Run Code Online (Sandbox Code Playgroud)