首頁  >  問答  >  主體

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

一個循環webpack同時打包一個項目到不同的位置上

let num
(new Array(num)),map((v, k) = {
  let start = +new Date()
  webpack(webpackConfig, () => {
    console.log(`time:${+new Date() - start} ms)
  })
})
 time:5232ms
time:9212ms
time:9332ms
#
time:40212ms
time:40342ms
...
time: 4xxxxms

看起來不是真正意義上的並行,會等所有webpack全執行完才一起回傳

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

這跟nodejs的單執行緒有關係?


後來使用了paraller-webpack這個函式庫,修改源碼,印出每一個promise的then回傳時間,結果類似,help

扔个三星炸死你扔个三星炸死你2662 天前729

全部回覆(1)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 10:45:10

    nodejs執行是單線程,但是你的結果和你寫的方式有關係。

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

    可以試試以下兩種方案,其中第二種是可以做到真正的並行
    1:將循環中的每個webpack任務建構方式分別寫到異步裡面例如setTimeOut。
    2:開啟多個node進程,每個進程上執行webpack建置

    回覆
    0
  • 取消回覆