我可以从Node.js中运行的javascript文件安装NPM包吗?例如,我想有一个脚本,让我们称它为"script.js“,不管是不是...using NPM ...)安装一个通常可以通过NPM获得的包。在本例中,我想安装"FFI“。(npm安装ffi)
发布于 2013-04-12 03:48:43
是。您可以使用child_process来执行系统命令
var exec = require('child_process').exec,
child;
child = exec('npm install ffi',
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
发布于 2013-10-16 22:31:53
实际上,这可能有点简单
var exec = require('child_process').exec;
child = exec('npm install ffi').stderr.pipe(process.stderr);
发布于 2017-07-15 22:49:59
我花了一段时间尝试让第一个示例在项目目录中工作,在这里发布,以防其他人发现这一点。据我所知,NPM仍然可以很好地直接加载,但因为它假设了CLI,所以我们必须重复进行一些设置:
// this must come before load to set your project directory
var previous = process.cwd();
process.chdir(project);
// this is the part missing from the example above
var conf = {'bin-links': false, verbose: true, prefix: project}
// this is all mostly the same
var cli = require('npm');
cli.load(conf, (err) => {
// handle errors
if(err) {
return reject(err);
}
// install module
cli.commands.install(['ffi'], (er, data) => {
process.chdir(previous);
if(err) {
reject(err);
}
// log errors or data
resolve(data);
});
cli.on('log', (message) => {
// log installation progress
console.log(message);
});
});
https://stackoverflow.com/questions/15957529
复制相似问题