Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
Webpack, las imágenes desaparecen después de los cambios de css, usando webpack-dev-server

Tengo un problema con la configuración de mi Webpack. Después de escribir la etiqueta, aparece la imagen, pero devServer elimina todas las imágenes después de que las aplicaciones de estilos se recargan inmediatamente después de la página. Y no volvería hasta que la ruta se agregara nuevamente en la etiqueta. Vea este video de captura de pantalla para tener una mejor imagen de lo que está sucediendo .

webpack.config.js:

 const path = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') let mode = 'development' let target = 'web' if (process.env.NODE_ENV === 'production') { mode = 'production' target = 'browserslist' } const plugins = [ new HtmlWebpackPlugin({ template: './index.html', }), new MiniCssExtractPlugin({ filename: '[name].[contenthash].css', }), ] module.exports = { mode, plugins, target, context: path.resolve(__dirname, 'src'), entry: { main: './main.js', }, output: { path: path.resolve(__dirname, 'dist'), assetModuleFilename: 'assets/[hash][ext][query]', clean: true, }, optimization: { splitChunks: { chunks: 'all', }, }, devServer: { static: { directory: path.join(__dirname, 'src'), }, compress: true, open: true, hot: true, port: 3001, }, resolve: { extensions: ['.js', '.ts', '.jsx', '.tsx'], }, module: { rules: [ { test: /\.(html)$/, use: ['html-loader'], }, { test: /\.(s[ac]|c)ss$/i, use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'], }, { test: /\.(png|jpe?g|gif|svg|webp|ico)$/i, type: mode === 'production' ? 'asset' : 'asset/resource', }, { test: /\.(woff2?|eot|ttf|otf)$/i, type: 'asset/resource', }, { test: /\.(js|jsx)?$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { cacheDirectory: true, }, }, }, { test: /\.(ts|tsx)?$/, exclude: /node_modules/, use: { loader: 'ts-loader', }, }, ], }, }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Tengo el mismo problema. Me di cuenta de que las imágenes que se importan en archivos JavaScript con import funcionan bien. El problema proviene de imágenes en archivos HTML, procesadas con html-loader . Busqué mucho, no encontré por qué sucede esto, pero aquí hay una forma de evitar el problema:

Primero, asegúrese de que el directorio estático de devServer sea el mismo que el directorio de salida de Webpack. Luego, cada vez que agregue una nueva imagen, detenga su servidor de desarrollo, ejecute npm run build o cualquier comando que use para construir su proyecto, y luego ejecute npm start . Y después de eso funcionaría bien.

Con respecto a los cambios de CSS, el problema se solucionó después de actualizar mi webpack-dev-server de v3.11.2 a v4.9.1 . Aunque cuando cambio un archivo TypeScript (estoy compilando TypeScript a JavaScript), el problema persiste y la solución anterior sigue siendo válida.

Si realiza esa migración de versión, dependiendo de su versión anterior, es posible que se realicen algunos cambios en la entrada de devServer en webpack.config.js . Consulte el documento si tiene errores.

about 4 years ago · Juan Pablo Isaza Report

0

Tuve un problema similar: noté que cambiar output.clean = false en el archivo webpack.dev.js resuelve el problema cuando output.path era nulo.

La respuesta seleccionada arriba también funcionó para mí.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!