Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 作为NodeJS应用程序的一部分,如何运行commamd-say npm安装或rake?_Node.js_Npm_Nodes - Fatal编程技术网

Node.js 作为NodeJS应用程序的一部分,如何运行commamd-say npm安装或rake?

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

我有一个节点应用程序,我想在其中运行命令或任务,如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) {
    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()