javascript - webpack并行(并发)打包问题
扔个三星炸死你
扔个三星炸死你 2017-07-05 10:43:10
0
1
765

一个循环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

扔个三星炸死你
扔个三星炸死你

全部回复(1)
曾经蜡笔没有小新

nodejs执行是单线程,但是你的结果和你写的方式有关系。

期待的效果是谁先build好谁先返回,而不是一起

可以试试如下两种方案,其中第二种是可以做到真正的并行
1:将循环中的每个webpack任务构建方式分别写到异步里面例如setTimeOut。
2:开启多个node进程,每个进程上执行webpack构建

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板