¿Cómo cambiar el nombre de archivo dentro de una regla? (Vue CLI 5)
Tengo esta regla, utilizando “vue inspect”
/* config.module.rule('svg') */
{
test: /\.(svg)(\?.*)?$/,
type: 'asset/resource',
generator: {
filename: 'img/[name][ext]'
}
},
Necesito cambiar el nombre del archivo, por ejemplo, a “[contenthash][ext]”, pero no puedo hacerlo usando
module.exports = defineConfig({
chainWebpack: (config) => {
config.module.rule("svg").generator.filename = "[contenthash][ext]";
},
})
porque no puedo establecer “generator”, puedo reescribir todas las reglas usando
module.exports = defineConfig({
configureWebpack: (config) => {
config.module.rules = [
{
test: /\.(svg)(\?.*)?$/,
use: [
{
loader: "svg-inline-loader",
options: {
name: "[contenthash].[ext]",
},
},
],
},
];
},
})
pero necesito que otras reglas existan… entonces, ¿cómo puedo cambiar el nombre de archivo del svg?
davy.ai
Como se menciona en la pregunta, no es posible establecer directamente la propiedad
filename
delgenerator
usandochainWebpack
en Vue CLI 5. Sin embargo, una solución alternativa es usar el métodorule.merge
para fusionar las propiedades de la regla:Esto actualizará la propiedad
filename
del objetogenerator
mientras se preservan las demás propiedades de la regla.