我想从我的nodejs应用程序访问npm注册表,并检索每个模块/包的说模块/包名称和git url。如何获取此npm注册表数据?我们是否有一些现有模块可以帮助我做到这一点?
感谢任何帮助。
答案 0 :(得分:0)
您应该能够使用子进程模块来执行npm。以下是节点网站的代码示例:
var exec = require('child_process').exec,
child;
child = exec('cat *.js bad_file | wc -l',
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
答案 1 :(得分:0)
信不信由你,但是npm本身is an npm module。请参阅“以编程方式使用npm”部分,了解如何执行此操作。
答案 2 :(得分:0)
这是我如何以编程方式使用npm的系统副本(而不是仅仅以编程方式安装单独的npm副本):
function loadNpm(cb) {
require('child_process').exec('npm', function(err, stdout, stderr) {
if (err) return cb(err);
var m = /npm@[^ ]+ (.+)\n/i.exec(stdout);
if (!m)
return cb(new Error('Unable to find path in npm help message'));
cb(undefined, require(m[1]));
});
}
// usage ...
loadNpm(function(err, npm) {
if (err) throw err;
// load() is required before using npm API
npm.load(function(err, npm) {
if (err) throw err;
// e.g. npm.search('ssh', true, function(err, results) { console.dir(results); });
});
});