您的位置:首頁技術文章
文章詳情頁

javascript - webpack并行(并發)打包問題

瀏覽:86日期:2023-03-30 11:35:25

問題描述

一個循環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
相關文章:
国产综合久久一区二区三区