提升webpack構建速度
阿新 • • 發佈:2019-05-30
減少resolve解析
resolve: {
modules: [
path.resolve(__dirname, 'node_modules'), // 使用絕對路徑指定 node_modules,不做過多查詢
],
// 刪除不必要的字尾自動補全,少了檔案字尾的自動匹配,即減少了檔案路徑查詢的工作
// 其他檔案可以在編碼時指定字尾,如 import('./index.scss')
extensions: [".js"],
// 避免新增預設檔案,編碼時使用詳細的檔案路徑,程式碼會更容易解讀,也有益於提高構建速度
mainFiles: ['index'],
}
把 loader 應用的檔案範圍縮小,只在最少數必須的程式碼模組中去使用必要的 loader
rules: [
{
test: /\.jsx?/,
include: [
path.resolve(__dirname, 'src'),
// 限定只在 src 目錄下的 js/jsx 檔案需要經 babel-loader 處理
// 通常我們需要 loader 處理的檔案都是存放在 src 目錄
],
use: 'babel-loader',
},
// ...
],
減少 plugin 的消耗,webpack 的 plugin 會在構建的過程中加入其它的工作步驟,如果可以的話,適當地移除掉一些沒有必要的 plugin。
- webpack 4.x 的 mode,區分 mode 會讓 webpack 的構建更加有針對性,更加高效。例如當 mode 為 development 時,webpack 會避免使用一些提高應用程式碼載入效能的配置項,如 UglifyJsPlugin,ExtractTextPlugin 等,這樣可以更快地啟動開發環境的服務,而當 mode 為 production 時,webpack 會避免使用一些便於 debug 的配置,來提升構建時的速度,例如極其消耗效能的 Source