如何使用npm-run-all包,并行或顺序执行npm scripts命令?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文将介绍一个node
的包,通常用在npm scripts
命令行中。支持并行或串行的执行任务,还可以控制错误是否影响命令行的执行。这和上一篇文章里面的&&和&的用法很相似,对吧?但是,这个run-all
并不区分操作系统。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码感想感悟。测试环境:win10
,node@16.14.2
,npm-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 -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 -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
也没有太大意义。好处就是:统一了各个不同操作系统的体验。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。