Yarn 并行运行多个脚本

bel*_*hem 20 npm yarnpkg

我正在从 NPM 迁移到 Yarn,并且我想并行运行脚本,例如:

npm-run-all --parallel script1 script2 script3
Run Code Online (Sandbox Code Playgroud)

它在 Yarn 中的等价物是什么?

我发现它的等价物是分别运行每个:

yarn run script1 && yarn run script2 && yarn run script3
Run Code Online (Sandbox Code Playgroud)

但我无法并行运行脚本。

如何使用多个脚本及在并行

mag*_*ker 16

使用&和之间有区别&&。using&将并行运行脚本, using&&将一个接一个地运行脚本。

包.json:

{
    "parallel": "yarn script1 & yarn script2",
    "serial": "yarn script1 && yarn script2",
    "script1": "... some script here",
    "script2": "... some there script here"
}
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于较新版本的 Yarn(我意识到 OP 没有指定他们正在使用哪个版本)。它有自己的 shell,出于跨平台兼容性的原因,它不允许您使用“&”。它将触发 `语法错误:预期为 "$"、"$("、"${"、"&&"、"'"、";"、"<"、"<<<"、">"、"> >"、"\""、"\\"、"|"、"|&"、"||"、[ \t] 或输入结束但找到 "&"`。要使用 `&`,将需要使用为此构建的库(正如其他回复所描述的那样),或者显式执行 bash 命令,例如“bash -c 'yarn script1&yarn script2'” (3认同)

小智 14

根据我在 npm-run-all 的文档中读到的内容,您可以继续使用它,并且只要您使用 yarn 运行脚本,它就会使用 YARN 并行运行脚本。

这是来自https://github.com/mysticatea/npm-run-all的原始报价

纱线相容性

如果使用 Yarn 调用脚本,npm-run-all 将正确使用 Yarn 执行计划的子脚本。


arc*_*i82 11

可以同时使用。例如:

concurrently "yarn run script1"   "yarn run script2"   "yarn run script3"
Run Code Online (Sandbox Code Playgroud)


Kev*_*lou 9

您可以使用为此目的而制作的https://www.npmjs.com/package/yarn-run-all

编辑:

我的回答是错误的。

npm-run-all 与纱线兼容:

如果使用 Yarn 调用脚本,npm-run-all 将正确使用 Yarn 执行计划的子脚本。

此外,该yarn-run-all软件包链接到存储库https://github.com/mysticatea/npm-run-all ...

最后,我不明白为什么 yarn-run-all 包存在。

无论如何,只需使用npm-run-allpackage 而不是yarn-run-all.

  • 该包名为“yarn-run-all”,但自述文件到处都是“npm”,而不是“yarn”... (3认同)