javascript - webpack并行(并发)打包问题
本文介绍了javascript - webpack并行(并发)打包问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
一个循环webpack同时打包一个项目到不同的位置上
let num
(new Array(num)),map((v, k) = {
let start = +new Date()
webpack(webpackConfig, () => {
console.log(`time:${+new Date() - start} ms)
})
})
num = 1
time:5232ms
num = 2
time:9212ms
time:9332ms
...
num = 30
time:40212ms
time:40342ms
...
time: 4xxxxms
看起来并不是真正意义上的并行,会等所有webpack全执行完才一起返回
期待的效果是谁先build好谁先返回,而不是一起
这跟nodejs的单线程有关系?
后来使用了paraller-webpack这个库,修改源码,打印每一个promise的then返回时间,结果类似,help
解决方案
nodejs执行是单线程,但是你的结果和你写的方式有关系。
期待的效果是谁先build好谁先返回,而不是一起
可以试试如下两种方案,其中第二种是可以做到真正的并行
1:将循环中的每个webpack任务构建方式分别写到异步里面例如setTimeOut。
2:开启多个node进程,每个进程上执行webpack构建
这篇关于javascript - webpack并行(并发)打包问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文