Error de Webpack después de actualizar algunas ganancias
Estoy actualizando los paquetes de mi aplicación, pero estoy recibiendo algunos errores cuando intento actualizar a los últimos.
My Project is running at http://localhost:8080/
estos son los paquetes del viejo proyecto que si uso funciona perfectamente
"autoprefixer": "^9.6.5",
"postcss-loader": "^3.0.0",
"webpack": "^4.41.2",
"webpack-cli": "^3.3.9",
"webpack-dev-server": "^3.11.0"
Estoy tratando de actualizar a estos para ser justo a las últimas versiones:
"autoprefixer": "^10.1.0",
"postcss-loader": "^4.1.0",
"webpack": "^5.9.0",
"webpack-cli": "^4.2.0",
"webpack-dev-server": "^3.11.0"
mi código GitHub: https://github.com/openbooknoobdeveloper/pizzareact
webpack.config.js
const path = require('path');
const autoprefixer = require('autoprefixer');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'development',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: ''
},
devtool: 'cheap-module-eval-source-map',
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
},
{
test: /\.css$/,
exclude: /node_modules/,
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
importLoaders: 1,
modules: {
localIdentName: '[name]__[local]__[hash:base64:5]'
}
}
},
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
plugins: () => [autoprefixer()]
}
}
]
},
{
test: /\.(png|jpe?g|gif)$/,
loader: 'url-loader?limit=8000&name=images/[name].[ext]'
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: __dirname + '/src/index.html',
filename: 'index.html',
inject: 'body'
})
]
};
webpack.config.prod.js
const path = require('path');
const autoprefixer = require('autoprefixer');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
publicPath: ''
},
devtool: 'none',
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
},
{
test: /\.css$/,
exclude: /node_modules/,
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
importLoaders: 1,
modules: {
localIdentName: '[name]__[local]__[hash:base64:5]'
}
}
},
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
plugins: () => [autoprefixer()]
}
}
]
},
{
test: /\.(png|jpe?g|gif)$/,
loader: 'url-loader?limit=8000&name=images/[name].[ext]'
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: __dirname + '/src/index.html',
filename: 'index.html',
inject: 'body'
})
]
};
si actualizo los paquetes obtengo este error cuando corro npm start
:
$ npm start
> [email protected] start A:\github\LAB\test-webpack-version-pizza
> webpack-dev-server
'webpack-dev-server' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `webpack-dev-server`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\PC\AppData\Roaming\npm-cache\_logs\2020-12-17T15_41_12_536Z-debug.log
Pregunta hecha hace 3 años, 5 meses, 0 días - Por quantumcoder
3 Respuestas:
-
Su problema es causado por la webpack de migración 4.x a 5.x. Tienes que cambiar el script de inicio para iniciar el servidor webpack: https://webpack.js.org/guides/development/
"start": "webpack serve"
Cuidado con las npm.
Respondida el Dec 17, 2020 a las 16:19 - por techscribe
Votos positivos: 0 | Votos negativos: 0 -
El error que estás viendo indica que
webpack-dev-server
no está siendo reconocido como un comando válido. Esto puede ser causado por diversas razones, como un problema de instalación o una incompatibilidad con la versión actual de Webpack.Para solucionar este problema, te recomiendo que sigas los siguientes pasos:
- Asegúrate de que `webpack-dev-server` está instalado como una dependencia de desarrollo en tu proyecto. Puedes verificarlo ejecutando el siguiente comando en la terminal en la carpeta de tu proyecto:
bash npm list webpack-dev-server
Si no aparece en la lista, puedes instalarlo ejecutando:
bash npm install webpack-dev-server --save-dev
- Si `webpack-dev-server` ya está instalado pero sigue sin funcionar, es posible que haya alguna incompatibilidad con la versión actual de Webpack. Para solucionar esto, puedes intentar instalar una versión específica de `webpack-dev-server` que sea compatible. Puedes probar con la siguiente versión:
bash npm install [email protected] --save-dev
Después de instalar, intenta ejecutar nuevamente
npm start
para ver si el error se resuelve.- Si el problema persiste, puedes intentar limpiar la caché de NPM y reinstalar todas las dependencias. Puedes hacerlo ejecutando los siguientes comandos:
bash npm cache clean --force rm -rf node_modules npm install
Una vez que hayas seguido estos pasos, intenta nuevamente ejecutar
npm start
y verifica si el error se ha solucionado. Espero que esta información te sea de ayuda.Respondida el Dec 18, 2020 a las 16:22 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Razón del error:
El error ocurre porque estás intentando ejecutar
webpack-dev-server
desde tu terminal, perowebpack-dev-server
ya no es un comando independiente en Webpack 5. Ahora es una dependencia dewebpack
, por lo que debes ejecutarlo usando el comandowebpack
.Solución:
Para solucionar el error, actualiza tu script de inicio en
package.json
para que use el comandowebpack
con el argumentoserve
:json "scripts": { "start": "webpack serve" }
Paquete faltante:
También falta un paquete en tu configuración de Webpack. El paquete
HtmlWebpackPlugin
debe instalarse para que el complemento funcione correctamente.Configuración actualizada:
webpack.config.js
javascript const path = require('path'); const autoprefixer = require('autoprefixer'); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { mode: 'development', entry: './src/index.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', publicPath: '' }, devtool: 'cheap-module-eval-source-map', module: { rules: [ // ... (resto del código) ] }, plugins: [ new HtmlWebpackPlugin({ template: __dirname + '/src/index.html', filename: 'index.html', inject: 'body' }) ] };
webpack.config.prod.js
javascript const path = require('path'); const autoprefixer = require('autoprefixer'); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { mode: 'production', entry: './src/index.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js', publicPath: '' }, devtool: 'none', module: { rules: [ // ... (resto del código) ] }, plugins: [ new HtmlWebpackPlugin({ template: __dirname + '/src/index.html', filename: 'index.html', inject: 'body' }) ] };
Pasos para ejecutar:
- Instala el paquete `HtmlWebpackPlugin` usando `npm install --save-dev html-webpack-plugin`.
- Actualiza tu script de inicio en `package.json` para usar `webpack serve`.
- Ejecuta `npm start` para iniciar el servidor de desarrollo de Webpack.
Estos cambios deberían resolver el error y permitirte ejecutar correctamente tu aplicación.
Respondida el Dec 18, 2020 a las 16:25 - por Gemini
Votos positivos: 0 | Votos negativos: 0