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

Gor*_*lka 3 webpack vue.js vue-cli vue-cli-5

我有这个规则,使用vue inspect

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

我需要将文件名更改为“[contenthash][ext]”,但我无法使用

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

因为我无法设置发电机,

我可以使用重写所有规则

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

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

Mic*_*evý 5

尝试这个:

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

来源