1️⃣ loader 的配置

2️⃣ 完整配置

  1. module.exports = {
  2. // ========== 配置 loader ==========
  3. // 针对模块的配置,4.X 版本只有两个配置,rules、noParse
  4. module: {
  5. // 模块匹配规则,可以存在多个规则
  6. rules: [
  7. // 每个规则是一个对象
  8. {
  9. // 匹配的模块正则, 使用 test ( 指定检查某些文件 )
  10. test: /\.js$/,
  11. // 匹配到后应用的规则模块, 使用 use, 多个 loader 用 use
  12. use: [
  13. // 其中一个规则
  14. {
  15. // loader 模块的路径,该字符串会被放置到 require 中
  16. loader: "模块路径",
  17. // 向对应 loader 传递的额外参数
  18. options: {
  19. }
  20. }
  21. ]
  22. },
  23. // 每个规则是一个对象
  24. {
  25. // 匹配的模块正则, 使用 test ( 指定检查某些文件 )
  26. test: /\.js$/,
  27. // 排除 node_modules 下的 js 文件
  28. exclude: /node_modules/,
  29. // 只检查 src 下的 js 文件
  30. include: resolve(__dirname, 'src'),
  31. // 执行顺序 - 'pre'优先执行, 'post'延后执行, 不写按照顺序执行
  32. enforce: 'pre',
  33. // 单个 loader 用 loader
  34. loader: 'eslint-loader'
  35. },
  36. ]
  37. },
  38. }

2️⃣ 简化配置

  1. module.exports = {
  2. // ========== 配置 loader ==========
  3. module: { // 针对模块的配置,4.X 版本只有两个配置,rules、noParse
  4. rules: [ // 模块匹配规则,可以存在多个规则
  5. { // 每个规则是一个对象
  6. test: /\.js$/, // 匹配的模块正则
  7. use: ["模块路径1", "模块路径2"] / /loader模块的路径,该字符串会被放置到require
  8. }
  9. ]
  10. }
  11. }

1️⃣ loader 的解析流程

image.pngimage.png

1️⃣ 自定义 loader 的使用方式

image.pngimage.pngimage.png

1️⃣ loader 的执行顺序

image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png