Print a list of all installed node.js modules
在我正在处理的node.js脚本中,我希望将所有node.js模块(使用npm安装)打印到命令行。我该怎么做?
1 2 3 | console.log(__filename); //now I want to print all installed modules to the command line. How can I do this? |
如果您只对不带完整树的全局安装程序包感兴趣,那么:
或局部(省略-g):
使用NPM LS(甚至有JSON输出)
从脚本中:
测试:JS:
1 2 3 4 5 6 7 | 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); |
运行:
1 2 | > node test.js null { name: 'x11', version: '0.0.11' } |
所有全球安装的第三方模块列表,写入控制台:
1 | npm -g ls |
在任何操作系统中
1 | npm -g list |
这就是它
通常,有两种方法可以列出已安装的软件包-通过命令行界面(CLI)或在使用API的应用程序中。
这两个命令都将以树形结构打印到
1 | npm list |
使用EDOCX1(全局)标志列出所有全局安装的软件包。使用
在您的例子中,您希望在脚本中运行这个,所以您需要使用API。来自文档:
1 | npm.commands.ls(args, [silent,] callback) |
除了打印到
为什么不从
当然,这只会给你实际保存的那些,但无论如何你应该这样做。
1 | console.log(Object.keys(require('./package.json').dependencies)); |
1 2 3 4 | for package in `sudo npm -g ls --depth=0 --parseable`; do printf"${package##*/} "; done |