您的位置:首页技术文章
文章详情页

javascript - webpack并行(并发)打包问题

【字号: 日期:2023-03-30 11:35:25浏览:39作者:猪猪

问题描述

一个循环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:9212mstime:9332ms

...

num = 30

time:40212mstime:40342ms...time: 4xxxxms看起来并不是真正意义上的并行,会等所有webpack全执行完才一起返回期待的效果是谁先build好谁先返回,而不是一起这跟nodejs的单线程有关系?后来使用了paraller-webpack这个库,修改源码,打印每一个promise的then返回时间,结果类似,help

问题解答

回答1:

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

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

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

标签: JavaScript
相关文章: