我有一个节点应用程序,我想在其中运行命令或任务,如npm install或rake或git clone。我尝试使用子进程exec,但没有运行npm安装任务。还有另一种方法吗?
答案 0 :(得分:2)
如果您想执行shell
(或cmd
,如果您使用的是Windows)命令,可以使用child_process.exec()
执行此操作
https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
以下是一个例子:
var exec = require('child_process').exec;
var child;
child = exec("pwd", function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
在调用npm install
函数时,只需将git clone
或pwd
或您要执行的任何内容放入exec
。
答案 1 :(得分:0)
您可以执行以下操作以使npm install
在节点脚本中工作,
执行npm install npm --save
(这需要一些时间)
现在,因为npm在node_modules文件夹中,所以您可以在脚本中导入它。 下面的示例脚本安装' foobar'封装
var npm = require("npm");
npm.load(function (err) {
npm.commands.install(["foobar"], function (err, data) {
});
npm.on("log", function (message) {
// progress of the npm install
console.log(message);
});
});
这只是一种选择。根据Lucian的建议使用child_process