Node.js 作为NodeJS应用程序的一部分,如何运行commamd-say npm安装或rake?
我有一个节点应用程序,我想在其中运行命令或任务,如npm安装、rake或git克隆。我尝试使用子进程exec,但未运行npm安装任务。有其他方法吗?如果您想执行Node.js 作为NodeJS应用程序的一部分,如何运行commamd-say npm安装或rake?,node.js,npm,nodes,Node.js,Npm,Nodes,我有一个节点应用程序,我想在其中运行命令或任务,如npm安装、rake或git克隆。我尝试使用子进程exec,但未运行npm安装任务。有其他方法吗?如果您想执行shell(或者cmd如果您在Windows上)命令,您可以使用child\u process.exec() 以下是一个例子: var exec = require('child_process').exec; var child; child = exec("pwd", function (error, stdout, stderr
shell
(或者cmd
如果您在Windows上)命令,您可以使用child\u process.exec()
以下是一个例子:
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);
}
});
调用
exec
函数时,只需将npm install
或git clone
或任何您想要执行的内容放入pwd
即可。
执行npm安装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\u process
这些任务是您希望在应用程序加载时运行的吗?是否可以同步执行这些任务,并在执行函数后获取stdout和stderr。是的,您可以使用child\u process.execSync()
: