亲爱的小伙伴们
最近收到了很多大家发来的
读「小心得」系列后自己的想法
跟大家交流的过程非常美好~
未来我们继续相互学习,共同进步吧
◆◆◆
今天就请出我们部门萌萌的
——旭爷!
为大家带来npm run多个script方面的「小心得」
在使用npm script运行多个任务时,通常需要选择任务是串行执行还是并行执行。
串行执行可以保证命令执行的顺序,并行执行可以提高运行速度。
package.json如下:
s1:进行eslint校验的任务
s2:进行jsonlint校验的任务
s:ori: 原生并行执行s1,s2的任务
s:lib: 使用npm-run-all并行执行s1,s2的任务
原生方式管理
►串行执行
只需要使用&&把多个npm script连接起来即可,例如:npm run s1 && npm run s2
这样就可以严格按照s1,s2的先后顺序执行
►并行执行
将并行的&&符号改成&,把多个npm script连接起来,例如:npm run s1 & npm run s2
此时s1和s2的执行先后顺序不确定。
►& wait
从上面的截图可以看到s1的检测结果在进程结束以后才输出显示。
原因:在并行执行的命令执行时间差异大些的时候,会出现在进程退出以后,有一些script才输出执行结果的情况。
为了保证在进程执行完之前script都执行完,并有输出结果,需要在命令的最后加上 & wait
npm run s1&& npm run s2 & wait
下面是执行s:ori结果,此时不会再出现任务进程结束以后,再输出eslint检测结果的情况。
添加& wait的好处还有,在执行一些比较费时的script时,还可以使用ctrl + c随时结束在后台启动的进程。
npm-run-all
npm-run-all为一个进行管理多script执行的npm包。
►串行执行
只需要改写为npm-run-all s1 s2
►并行执行
只需要改写为npm-run-all --parallel s1 s2。
下面为执行s:lib的结果,可以实现和执行s:ori同样的效果。
►串行并行混合使用
npm-run-all s1 s2--parallel s3 s4 --sequential s5 s6
其他使用方法详见官方文档:
https://github.com/mysticatea/npm-run-all/blob/HEAD/docs/npm-run-all.md
好啦,今天的分享就到这里啦~
小伙伴们有任何小心得
也欢迎留言与我们讨论互动喔!
◆◆◆
请大家持续关注我们的公众号
我们会不断地分享更多有趣的干货~
笔芯~
领取专属 10元无门槛券
私享最新 技术干货