Tengo una aplicación vue 3 donde configuré webpack 5 eventualmente. Como veo, eliminé todos mis problemas ahora, lo único que queda es que no carga mis svg-s e imágenes cuando ejecuto el script de servicio del paquete web en modo de desarrollo. ¿Cómo puedo configurar el paquete web para que incluya mis svg-s de la carpeta scr/assets?
mi configuración de paquete web:
const webpack = require('webpack'); const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const CopyPlugin = require('copy-webpack-plugin'); const { VueLoaderPlugin } = require('vue-loader'); const env = process.env.NODE_ENV || 'development'; const mode = process.env.VUE_APP_MODE || 'not-fullstack'; module.exports = { mode: 'development', entry: './src/main.js', output: { filename: 'index.js', path: path.resolve(__dirname, 'dist'), }, resolve: { alias: { vue: '@vue/runtime-dom', '@': path.join(__dirname, 'src'), }, fallback: { crypto: false, stream: false }, }, module: { rules: [ { test: /\.vue$/, use: [ { loader: 'vue-loader', }, ], }, { test: /\.css$/i, use: ['style-loader', 'css-loader', 'postcss-loader'], }, { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: 'images/[name].[hash].[ext]', }, type: 'asset/resource', }, { test: /\.svg$/i, use: [ { loader: 'url-loader', options: { encoding: false, }, }, ], }, ], }, plugins: [ new HtmlWebpackPlugin({ filename: 'index.html', template: path.resolve(__dirname, './public/index.html'), }), new VueLoaderPlugin(), new CopyPlugin([ { noErrorOnMissing: true, from: './src/assets', to: 'images' }, ]), new webpack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(env), 'process.env.VUE_APP_MODE': JSON.stringify(mode), }), ], devServer: { historyApiFallback: true, compress: true, port: 3000, }, };Y hago referencia a mi svg-s en mi componente Vue de esta manera:
<img src="../../assets/logo.svg" alt="logo" />Como puede ver, probé con el complemento copy-webpack-plugin, tal vez lo configuré mal.
¡De forma anticipada, muchas gracias por su ayuda!
La configuración en webpack5 cambió mucho
{ loader: 'url-loader', options: { encoding: false, },Esto ya no funciona. El cargador de URL incluso se elimina de los paquetes npm.
La forma actual se encuentra en la documentación.
https://webpack.js.org/guides/asset-management/#loading-images