你如何运行commamd说npm install或rake作为节点js应用程序的一部分?

时间:2015-08-04 12:38:58

标签: node.js npm nodes

我有一个节点应用程序,我想在其中运行命令或任务,如npm install或rake或git clone。我尝试使用子进程exec,但没有运行npm安装任务。还有另一种方法吗?

2 个答案:

答案 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 clonepwd或您要执行的任何内容放入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