javascript - webpack并行(并發(fā))打包問題
問題描述
一個(gè)循環(huán)webpack同時(shí)打包一個(gè)項(xiàng)目到不同的位置上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看起來(lái)并不是真正意義上的并行,會(huì)等所有webpack全執(zhí)行完才一起返回期待的效果是誰(shuí)先build好誰(shuí)先返回,而不是一起這跟nodejs的單線程有關(guān)系?后來(lái)使用了paraller-webpack這個(gè)庫(kù),修改源碼,打印每一個(gè)promise的then返回時(shí)間,結(jié)果類似,help
問題解答
回答1:nodejs執(zhí)行是單線程,但是你的結(jié)果和你寫的方式有關(guān)系。
期待的效果是誰(shuí)先build好誰(shuí)先返回,而不是一起
可以試試如下兩種方案,其中第二種是可以做到真正的并行1:將循環(huán)中的每個(gè)webpack任務(wù)構(gòu)建方式分別寫到異步里面例如setTimeOut。2:開啟多個(gè)node進(jìn)程,每個(gè)進(jìn)程上執(zhí)行webpack構(gòu)建
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. PHP求助,求幫忙謝謝各位3. extra沒有加載出來(lái)4. mysql - php 如何網(wǎng)址中出現(xiàn)該頁(yè)標(biāo)題?5. javascript - 天貓首頁(yè)首屏數(shù)據(jù)來(lái)源6. javascript - 釘釘?shù)膃xcel, word文件預(yù)覽是直接用的微軟的office web app,不犯法嗎?7. 關(guān)于Mysql數(shù)據(jù)表行轉(zhuǎn)列8. django進(jìn)行數(shù)據(jù)庫(kù)的查詢9. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過段時(shí)間會(huì)消失是什么情況?10. mysql - 為什么where條件中or加索引不起作用?
