我正在AWS Elastic Beanstalk中运行Node.js Express Web服务器。我希望在特殊的Admin About页面上列出活动节点模块版本。
我是否可以调用一个函数来列出我通常从npm list
获得的详细信息?
例如:
├── async@0.9.0
├─┬ aws-sdk@2.1.17
│ ├─┬ xml2js@0.2.6
│ │ └── sax@0.4.2
│ └── xmlbuilder@0.4.2
├── crypto@0.0.3
答案 0 :(得分:1)
是的,您可以以编程方式使用npm
:
var npm = require('npm');
npm.load({}, function(err) {
npm.commands.list(function(modules) {
console.log(modules);
});
});
请务必先在本地安装:npm install npm
。
答案 1 :(得分:0)
您可以生成child process以从内部节点调用任何命令行指令。您还可以向指令添加选项。例如,以json:
的形式接收npm list数据var spawn = require('child_process').spawn,
list = spawn('npm', ['list', '--json']);
list.stdout.on('data', function (data) {
console.log('json npm list: ' + data);
});
list.stderr.on('data', function (data) {
console.log('there was an error retrieving npm list: ' + data);
});
list.on('close', function (code) {
console.log('child process exited with code ' + code);
});