resolve
- 用於匹配 resource 路徑的方法:
- { test: ... } 匹配特定條件
- { include: ... } 匹配特定路徑
- { exclude: ... } 排除特定路徑
- { and: [...] }必須匹配數組中全部條件
- { or: [...] } 匹配數組中任意一個條件
- { not: [...] } 排除匹配數組中全部條件
上述的所謂條件的值能夠是:jquery
- 字符串:必須以提供的字符串開始,因此是字符串的話,這裏咱們須要提供絕對路徑
- 正則表達式:調用正則的 test 方法來判斷匹配
- 函數:(path) => boolean,返回 true 表示匹配
- 數組:至少包含一個條件的數組
- 對象:匹配全部屬性值的條件
其餘的配置字段
- options 給對應的 loader 傳遞一些配置項
- use 字段能夠是一個數組,也能夠是一個字符串或者表示 loader 的對象
loader執行的順序
- module.rules中從後往前執行
- 多個 rule 匹配了同一個模塊文件,這個是沒法保證這些rule的執行順序,固然能夠配置enforce,其有兩個屬性(
pre
、post
) 分別對應前置類型或後置類型的loader。
- 前置 -> 行內 -> 普通 -> 後置的順序執行。行內loader即例如
const json = require('json-loader!./file.json')
module.noParse 字段
- 能夠用於配置哪些模塊文件的內容不須要進行解析。對於一些不須要解析依賴(即無依賴) 的第三方大型類庫等,能夠經過這個字段來配置,以提升總體的構建速度。
使用 noParse 進行忽略的模塊文件中不能使用 import、require、define 等導入機制。正則表達式
module.exports = {
// ...
module: {
noParse: /jquery|lodash/, // 正則表達式
// 或者使用 function
noParse(content) {
return /jquery|lodash/.test(content)
},
}
}