rules
匹配解析规则也有条件和顺序的筛选。
include: path.resolve(dirname, ‘src’)当前loader只匹配src文件下的
exclude:path.resolve(dirname, ‘src’)不匹配src下的文件
enforce 执行顺序 默认是从右到左 enforce:’post’ 执行顺序放到最后 enforce:’pre’ 执行顺序放到最前面
noParse
当项目中有没有使用到模块化标准的库打包的时候就不需要采用模块化方式解析。
// 使用正则表达式
noParse: /jquery|chartjs/
// 使用函数,从 Webpack 3.0.0 开始支持
noParse: (content)=> {
// content 代表一个模块的文件路径
// 返回 true or false
return /jquery|chartjs/.test(content);
}
Parser
当我们清楚的知道当前库用模块化标准的时候,可以精确的指出使用什么不使用什么。
module: {
rules: [
{
test: /\.js$/,
use: ['babel-loader'],
parser: {
amd: false, // 禁用 AMD
commonjs: false, // 禁用 CommonJS
system: false, // 禁用 SystemJS
harmony: false, // 禁用 ES6 import/export
requireInclude: false, // 禁用 require.include
requireEnsure: false, // 禁用 require.ensure
requireContext: false, // 禁用 require.context
browserify: false, // 禁用 browserify
requireJs: false, // 禁用 requirejs
}
},
]
}