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í)吧丶,傳送門