本文主要为大家介绍一下几种执行串行命令和并行命令的方式,供大家参考学习。
1、第一种方式
一个 &
是代表并行执行左指令和右侧指令
两个 &&
是代表串行执行,先执行左侧指令,再执行右侧命令
而如果一个命令中既包含 &
,也包含 &&
。&
并行的级别要高一些,首先会执行&
左右两侧的命令,然后再根据左右两侧指令情况进行执行。
2、第二种方式 npm-run-all
首先这是一个npm包
npminpm-run-all
npm-run-all
、run-s
、run-p
后面两个其实是两个缩写形式,分别代码串行执行和并行执行, 而 npm-run-all
默认是串行执行,当然你可以添加参数
npm-run-all 默认串行执行
npm-run-all -- sequential:串行执行
npm-run-all -- parallel:并行执行
串行指令可以直接简化为以下:
// chuanxing 当然名字不能相同,我这里好做比较所以就暂时写成相同
"chuanxing":"npmrundemo1&&npmrundemo2&&npmrundemo3",//或默认指令其实也可以加默认参数--sequential"chuanxing":"npm-run-alldemo1demo2demo3",//或简化指令run-s"chuanxing":"run-sdemo1demo2demo3",
原来的并行指令可以简化为以下:
// bingxing 当然名字不能相同,我这里好做比较所以就暂时写成相同
"bingxing":"npmrundemo1&&npmrundemo2&&npmrundemo3",//或简化指令run-p"bingxing":"run-pdemo1demo2demo3",//默认指令加参--parallel"bingxing":"npm-run-all--paralleldemo1demo2demo3"
3、第三种方式 concurrently并行执行命令库
这也是一个npm库,要先安装
npmiconcurrently
并行执行命令的示例
"start":"concurrently\"npmrundemo1\"\"npmrundemo2\"\"npmrundemo3\""
4、pre和post
npm run
为每条命令提供了pre
和post
两个钩子(hook)。找个例子可能更好理解一些
"predemo1":"nodedemo2.js","demo1":"nodedemo1.js","postdemo1":"nodedemo3.js",
可以发现先执行的是predemo1
钩子命令,这个其实就是前置钩子。
然后开始执行demo1
命令,这也是我们的主体命令了。
最后会执行postdemo1
钩子命令,这个其实就是后置钩子。
5、总结
学习几种方式如何去串行执行和并行执行命令
某个命令的前置钩子命令和后置钩子命令
理解前后置钩子和串行、并行便可以根据实际情况去变通组合,更方便、有利于写出符合实际情况的脚本