我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文将介绍一个node的包,通常用在npm scripts命令行中。支持并行或串行的执行任务,还可以控制错误是否影响命令行的执行。这和上一篇文章里面的&&和&的用法很相似,对吧?但是,这个run-all并不区分操作系统。

苏南大叔:如何使用npm-run-all包,并行或顺序执行npm scripts命令? - npm-run-all
如何使用npm-run-all包,并行或顺序执行npm scripts命令?(图3-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码感想感悟。测试环境:win10node@16.14.2npm-run-all@4.1.5

导读

本文基于如下两篇文章,可以加深对本文的理解:

下载安装npm-run-all

可以在当前项目下直接非全局安装。

npm install npm-run-all --save-dev

或者:

npm i npm-run-all -D

然后在package.json里面,定义好要执行的命令:

{
  //..
  "script": {
    "t:1": "node 1.js",
    "t:2": "node 2.js",
    "t:3": "node 3.js",
    "test": "npm-run-all t:*"
  }
  //..
}

串行执行,遇错全部停止【默认】

这个和“&&”的效果是一样的。npm-run-all的默认效果就是顺序执行,遇错全部停止执行。所以下面的几条命令是等效的。

npm-run-all t:1 t:2 t:3
npm-run-all t:*
npm-run-all -s t:*
npm-run-all --serial t:*

苏南大叔:如何使用npm-run-all包,并行或顺序执行npm scripts命令? - 顺序执行
如何使用npm-run-all包,并行或顺序执行npm scripts命令?(图3-2)

并行执行任务,默认遇错仅停当前任务【常见】

npm-run-all -p t:1 t:2 t:3
npm-run-all --parallel t:1 t:2 t:3
npm-run-all --parallel t:*
npm-run-all --parallel --continue-on-error t:*

苏南大叔:如何使用npm-run-all包,并行或顺序执行npm scripts命令? - 并行执行
如何使用npm-run-all包,并行或顺序执行npm scripts命令?(图3-3)

这种情况应该是最常见的需求,比如下面这篇文章中,就可以通过npm-run-all -p express start命令,一键开启express接口和react-scripts的服务器。

并行执行任务,遇错全部停止【测试失败】

npm-run-all --parallel --race t:*

这一条在windows环境下,测试失败!依然是--continue-on-error的效果!如果大家知道是怎么回事,请留言!

混合并行和串行命令【混乱】

这个npm-run-all有个特别之处,就是可以同时使用-p-r,仅对后续任务队列生效。这个比较罕见吧?

npm-run-all -p t:1 t:2 -r t:3 t:1

不过理解上有些混乱,不建议这么使用。

结束语

对于非windows系统来说,这个run-all也没有太大意义。好处就是:统一了各个不同操作系统的体验。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   npm