vue.js - 如何更改规则内的文件名? (Vue CLI 5)

标签 vue.js webpack vue-cli vue-cli-5

我有这个规则,使用 vue inspect

      /* config.module.rule('svg') */
          {
            test: /\.(svg)(\?.*)?$/,
            type: 'asset/resource',
            generator: {
              filename: 'img/[name][ext]'
            }
          },

我需要将文件名更改为“[contenthash][ext]” 但我不能用

    module.exports = defineConfig({
    chainWebpack: (config) => {
    config.module.rule("svg").generator.filename = "[contenthash][ext]";
      },
    }) 

因为我不能设置生成器,

我可以使用重写所有规则

    module.exports = defineConfig({
    configureWebpack: (config) => {
    config.module.rules = [
          {
            test: /\.(svg)(\?.*)?$/,
            use: [
              {
                loader: "svg-inline-loader",
                options: {
                  name: "[contenthash].[ext]",
                },
              },
            ],
          },
        ];
    },
  })

但我需要存在其他规则...那么如何更改 svg 的文件名?

最佳答案

试试这个:

chainWebpack: (config) => {
  config.module.rule("svg")
    .set('generator', {
      filename: "[contenthash][ext]"
    })
}

Source

关于vue.js - 如何更改规则内的文件名? (Vue CLI 5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70089727/

相关文章:

javascript - Vue + Typescript + Webpack : Module build failing - Can't find vue. esm.js

javascript - 错误 Vue.js "Cannot read property ' props' of undefined"

javascript - 并行化 webpack 构建以提高性能?

javascript - Webpack 2 - 具有相同内容的多个输出文件

vue.js - 在另一个仓库中导入 vue-cli 应用程序时出错

如果找不到路由,Vue.js 如何重定向到公共(public)路由

javascript - v-for prop 值未使用 Bootstrap 模式更新

javascript - 为 React/Webpack 动态需要图像或者许多 require(img) 的成本是多少

vue.js - vue.config.js [transpileDependencies] 不起作用

javascript - 如何在 VS Code 编辑器中使用 ESLint + Airbnb 规则 + TypeScript + Stylelint 为 SCSS 配置 Vue CLI 4,并在保存时自动修复?