如何同时运行多个npm脚本?

时间:2017-12-24 00:21:02

标签: node.js npm package.json

在我的package.json中,我定义了两个脚本。我如何同时运行它们?

"scripts": {
    "server": "webpack-dev-server",
    "webpack": "webpack -wd",
},

7 个答案:

答案 0 :(得分:8)

通过npm运行调用脚本&并行执行或与&&顺序执行:

npm run server & npm run webpack

说明:

Use &&  for sequential execution.
Use &  for parallel execution.

答案 1 :(得分:2)

"scripts": {
    "sw": "webpack-dev-server & webpack -wd"
},

然后

npm run sw

答案 2 :(得分:0)

您可以使用像parallelshel这样的模块。

https://www.npmjs.com/package/parallelshell

正如npm官方网站所说:

  

最大的区别是parallelshell是一个npm模块和GNU   并行不是。虽然他们可能做类似的事情,虽然(GNU)   并行更高级,parallelshell是一个更容易的选择   使用npm时工作(因为它是一个npm模块)。

     

如果您在项目的所有计算机上安装了GNU并行程序   将继续,然后一定要使用它! :)

-

  

这有什么不同于:

     

$ cmd1 & cmd2 & cmd3

     
      
  • 跨平台 - 适用于Unix或Windows。
  •   

答案 3 :(得分:0)

使用concurrently运行多个npm脚本。

步骤:

  1. 运行npm i concurrently以同时安装。

  2. 通过添加全部(可以更改为其他名称)来修改package.json中的脚本。

    “脚本”:{     “ server”:“ webpack-dev-server”,     “ webpack”:“ webpack -wd”,     “ all”:“同时\” npm运行服务器\“ \” npm运行webpack \“” },

  3. 运行npm run all以执行多个npm脚本。

  4. 在控制台日志中确认输出。

答案 4 :(得分:0)

您可以使用npm-run-all以多种不同方式组合多个命令

例如,如果您的package.json中包含以下脚本:

"scripts": {
    "lint":  "eslint src",
    "build": "babel src -o lib"
}

您可以像这样并行运行它们:

$ npm-run-all --parallel lint build

请参见how to run multiple npm commands sequentially的问题

答案 5 :(得分:0)

您可以使用一个 #include <stdio.h> #include <iostream> #include <string> using namespace std; struct Vector3 { int x, y, z = 0; Vector3() { cout << "Vector3()" << endl; }; Vector3(int X, int Y, int Z) : x(X), y(Y), z(Z) { cout << "Vector3(int X, int Y, int Z)" << endl; }; // Focal point here operator const char* () { cout << "operator const char* called" << endl; v3string = to_string(x) + ", " + to_string(y) + ", " + to_string(z); v3pchar = v3string.c_str(); return v3pchar; } private: string v3string = "Never even blank"; const char* v3pchar = "So why does this become blank?"; }; int main() { Vector3 v1 = Vector3(1, 2, 3); cout << "Vector3 implicit cast to char*: [" << v1 << "]" << endl; // Works const char* v2 = v1; printf("Vector3 explicit cast to char*: [%s]\n", (const char*)v2); // Works cout << "---------------------------------------------" << endl; const char* v3 = Vector3(4, 5, 6); cout << "Vector3 instantiation cast to char*: [" << v3 << "]" << endl; // Empty return 0; }; 进行并行运行脚本

&

Reference link

答案 6 :(得分:-1)

到目前为止,语法似乎已经发生了一些变化,您需要在引号中使用&。

下面是我为演示脚本运行的命令。

用于顺序执行:

npm run temp '&&' npm run temp1 

用于并行执行

npm run temp '&' npm run temp1