rules

匹配解析规则也有条件和顺序的筛选。
include: path.resolve(dirname, ‘src’)当前loader只匹配src文件下的
exclude:path.resolve(
dirname, ‘src’)不匹配src下的文件
enforce 执行顺序 默认是从右到左 enforce:’post’ 执行顺序放到最后 enforce:’pre’ 执行顺序放到最前面

noParse

当项目中有没有使用到模块化标准的库打包的时候就不需要采用模块化方式解析。

  1. // 使用正则表达式
  2. noParse: /jquery|chartjs/
  3. // 使用函数,从 Webpack 3.0.0 开始支持
  4. noParse: (content)=> {
  5. // content 代表一个模块的文件路径
  6. // 返回 true or false
  7. return /jquery|chartjs/.test(content);
  8. }

Parser

当我们清楚的知道当前库用模块化标准的时候,可以精确的指出使用什么不使用什么。

  1. module: {
  2. rules: [
  3. {
  4. test: /\.js$/,
  5. use: ['babel-loader'],
  6. parser: {
  7. amd: false, // 禁用 AMD
  8. commonjs: false, // 禁用 CommonJS
  9. system: false, // 禁用 SystemJS
  10. harmony: false, // 禁用 ES6 import/export
  11. requireInclude: false, // 禁用 require.include
  12. requireEnsure: false, // 禁用 require.ensure
  13. requireContext: false, // 禁用 require.context
  14. browserify: false, // 禁用 browserify
  15. requireJs: false, // 禁用 requirejs
  16. }
  17. },
  18. ]
  19. }