¿Cómo el plugin de webpack modifica la dirección del recurso de imagen utilizado en los activos de JS?
Quiero implementar un complemento de Webpack4 que pueda subir ciertos archivos al CDN después de empaquetarlos, como imágenes.
Sin embargo, descubrí que la dirección de la imagen cargada en los archivos JS en la fase “compiler.hooks.emit” estaba escrita incorrectamente. No puedo actualizarla. La dirección actual después de empaquetar es la siguiente:
cf05:function(e,t,n){e.exports=n.p+”img/logo.82b9c7a5.png”}}
Me gustaría actualizar esta dirección de imagen a la siguiente:
https://www.test.com/cdn/img/logo.82b9c7a5.png
No puedo usar PublicPath porque se aplica a todos los recursos; quiero que se aplique a algunos recursos, ¿existe una API que pueda hacer eso?
Muchas gracias.
davy.ai
Para actualizar la dirección de la imagen para ciertos archivos y no todos los recursos, necesitarías escribir un plugin personalizado para Webpack4.
En tu plugin personalizado, puedes acceder a la fase compiler.hooks.emit y modificar el código fuente de los archivos JS del activo. Específicamente, puedes usar una expresión regular para encontrar y reemplazar la dirección de la imagen con la URL del CDN.
Aquí tienes un ejemplo de cómo hacerlo:
Para usar este plugin, lo agregarías a tu configuración de Webpack4 de la siguiente manera:
Esto debería actualizar la dirección de la imagen para ciertos archivos, sin afectar al resto de tus recursos.