webpack - Webpack 配置中具有相同测试的多个规则会产生什么结果?

标签 webpack webpack-5 webpack-html-loader

Webpack 文档 module.rules非常稀疏:

[Rule]

An array of Rules which are matched to requests when modules are created. These rules can modify how the module is created. They can apply loaders to the module, or modify the parser.


html-loader documentation ,存在许多使用两个规则测试同一正则表达式的示例,例如:

module.exports = {
  output: {
    assetModuleFilename: "[name][ext]",
  },
  module: {
    rules: [
      {
        test: /\.html$/,
        type: "asset/resource",
        generator: {
          filename: "[name][ext]",
        },
      },
      {
        test: /\.html$/i,
        use: ["extract-loader", "html-loader"],
      },
    ],
  },
};

两条规则处理同一文件的原因/结果是什么?

为什么不使用单一规则?

module.exports = {
  output: {
    assetModuleFilename: "[name][ext]",
  },
  module: {
    rules: [{
        test: /\.html$/,
        use: ["extract-loader", "html-loader"],
        type: "asset/resource",
        generator: {
          filename: "[name][ext]",
        },
      }
    ],
  },
};

最佳答案

在我看来,测试是不同的,

  • /\.html$/ 与 .html 文件完全匹配
  • /\.html$/i 忽略大小写匹配,可以匹配 .html 和 .HTML 或 .Html,例如

因此,您可以将 .html 文件作为资源导入,但不能将 .HTML 作为模块导入。

关于webpack - Webpack 配置中具有相同测试的多个规则会产生什么结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71357154/

相关文章:

reactjs - 在 Gatsby/React 中将文件作为字符串(或源 Assets )导入

node.js - 尝试将 mongoose 与 webpack 结合使用时出现大量神秘错误和警告

angularjs - 使用带有 angularJS (v1) 模板的 html-loader 和 Jest 失败

javascript - Webpack html-loader,包含用于延迟加载的 data-src 图像

node.js - react-scripts 需要旧版本的 webpack

webpack - Vuejs + webpack : npm run build slow

javascript - Webpack 'production' 模式不编译任何内容

jwt - 如何在 Webpack 5 中为 jsonwebtoken 填充缓冲区

javascript - Webpack 5 使用 html-loader 加载 svgs

javascript - 如何使用webpack html插件在头部注入(inject)css包和在体内注入(inject)js包