解決React Webpack打包慢的問(wèn)題

1、advanced module optimization 編譯速度很慢的問(wèn)題

安裝babel-plugin-dynamic-import-node依賴,然后在.babelrc文件中添加即可

npm install babel-plugin-dynamic-import-node --save-dev

.babelrc中添加

###.babelrc
{
  "plugins": ["dynamic-import-node"]
}

此段選自:CSDN,作者:勇敢的豆沙包,傳送門

2、css-loader版本過(guò)高導(dǎo)致編譯速度慢

  • 開(kāi)啟devtool: "#inline-source-map"會(huì)增加編譯時(shí)間
  • css-loader 0.15.0+ 使webpack加載變得緩慢
//css-loader 0.16.0
Hash: 8d3652a9b4988c8ad221
Version: webpack 1.11.0
Time: 51612ms

//以下是css-loader 0.14.5
Hash: bd471e6f4aa10b195feb
Version: webpack 1.11.0
Time: 6121ms

此段選自GitHub,作者:hawx1993,傳送門

3、thread-loader多線程打包

{
        test: /\.js$/,
        exclude: /node_modules/,
        // 創(chuàng)建一個(gè) js worker 池
        use: [ 
        //直接在loader之前使用
          'thread-loader',
          'babel-loader'
        ] 
      },
    //自定義配置行
    use[
    {
    loader: "thread-loader",
    // loaders with equal options will share worker pools
    // 設(shè)置同樣option的loaders會(huì)共享
    options: {
      // worker的數(shù)量,默認(rèn)是cpu核心數(shù)
      workers: 2,
      // 一個(gè)worker并行的job數(shù)量,默認(rèn)為20
      workerParallelJobs: 50,
      // 添加額外的node js 參數(shù)
      workerNodeArgs: ['--max-old-space-size=1024'],
      // 允許重新生成一個(gè)dead work pool
      // 這個(gè)過(guò)程會(huì)降低整體編譯速度
      // 開(kāi)發(fā)環(huán)境應(yīng)該設(shè)置為false
      poolRespawn: false,
      //空閑多少秒后,干掉work 進(jìn)程
      // 默認(rèn)是500ms
      // 當(dāng)處于監(jiān)聽(tīng)模式下,可以設(shè)置為無(wú)限大,讓worker一直存在
      poolTimeout: 2000,
      // pool 分配給workder的job數(shù)量
      // 默認(rèn)是200
      // 設(shè)置的越低效率會(huì)更低,但是job分布會(huì)更均勻
      poolParallelJobs: 50,
      }
    }
    'babel-loader'
    ]

此段選自掘金,作者:好學(xué)習(xí)吧丶,傳送門

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容