javascript - webpack並行(並發)打包問題
扔个三星炸死你
扔个三星炸死你 2017-07-05 10:43:10
0
1
811

一個循環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建置

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板