Webpack 4 - ¿Cómo configurar minimizar?

114

Webpack 4 viene con la siguiente declaración:

webpack.optimize.UglifyJsPlugin se ha eliminado, utilice config.optimization.minimize en su lugar.

Es bastante justo, pero no puedo encontrar ninguna información sobre cómo configurar la instancia de UglifyJsPlugin que se ejecuta bajo el capó, por ejemplo, para cambiar el directorio de caché. Se puede hacer esto?

csvan
fuente
2
Como referencia, los UglifyJsPluginvalores predeterminados se enumeran aquí
davnicwil

Respuestas:

95

No es posible modificar la configuración predeterminada.

Sin embargo, puede usar la optimization.minimizerconfiguración para crear una instancia propia UglifyJsPlugin. Usando 4.0 usamos este ejemplo para obtener mapas de origen incluso cuando modeestá configurado, 'production'por ejemplo, (ya no es necesario a partir de 4.1.1):

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
  optimization: {
    minimizer: [
      // we specify a custom UglifyJsPlugin here to get source maps in production
      new UglifyJsPlugin({
        cache: true,
        parallel: true,
        uglifyOptions: {
          compress: false,
          ecma: 6,
          mangle: true
        },
        sourceMap: true
      })
    ]
  }
};
Galán
fuente
95
¿No se suponía que el paquete web 4 era conf cero?
connexo
3
Sin embargo, esto requiere que cree una instancia del complemento, solo quiero modificar la configuración existente.
csvan
4
Y tenga en cuenta que es posible que deba hacerlo yarn add uglifyjs-webpack-plugin --dev;)
Alfonso Pérez
2
y aquí; busque "optimization.minimizer" en esta página: medium.com/webpack/webpack-4-mode-and-optimization-5423a6bc597a
Beau
3
@ AlfonsoPérez webpack ya se instala uglifyjs-webpack-plugincomo una dependencia
Beau
5

Sin agregar uglifyjs-webpack-plugin, puede agregar esto al final de su archivo webpack.prod.config.js :

 optimization: {
   minimize: false
 }
Nafis
fuente
2

Puedes probar esto

npm install uglifyjs-webpack-plugin --save-dev

webpack.config.js

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
  optimization: {
    minimizer: [new UglifyJsPlugin()],
  },
};

documentación del paquete web

Sarath Ak
fuente
1

Solo corre:

yarn add uglifyjs-webpack-plugin --dev

Referencia: Respuesta de Alfonso Pérez

Rafael Corrêa Gomes
fuente
-4

Debe marcar la popción: https://webpack.js.org/guides/production/#cli-alternatives : este indicador le dice a Webpack que optimice su compilación para el entorno de producción. Puede usarlo con la nueva "producción" modepara una construcción más pequeña.

KorHosik
fuente
2
Gracias, pero estoy buscando modificar la configuración predeterminada.
csvan