在我正在处理的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
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)
Muh*_*sad 27
在任何操作系统中
npm -g list
Run Code Online (Sandbox Code Playgroud)
就是这样
通常,有两种方法可以列出已安装的软件包 - 通过命令行界面(CLI)或使用API在您的应用程序中.
这两个命令将stdout在树结构中打印到已安装的所有软件包版本及其依赖项.
npm list
Run Code Online (Sandbox Code Playgroud)
使用-g(global)标志列出所有全局安装的包.使用该--depth=0标志仅列出顶级包而不是其依赖项.
在您的情况下,您希望在脚本中运行它,因此您需要使用API.来自文档:
npm.commands.ls(args, [silent,] callback)
Run Code Online (Sandbox Code Playgroud)
除了打印到stdout,数据也将被传递到回调中.
为什么不从抓住他们dependencies的package.json?
当然,这只会给你实际保存的那些,但无论如何你应该这样做.
console.log(Object.keys(require('./package.json').dependencies));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153278 次 |
| 最近记录: |