Aquí está mi webpack.config.js
var webpack = require("webpack");
module.exports = {
entry: "./entry.js",
devtool: "source-map",
output: {
path: "./dist",
filename: "bundle.min.js"
},
plugins: [
new webpack.optimize.UglifyJsPlugin({minimize: true})
]
};
Estoy construyendo con
$ webpack
En mi dist
carpeta, solo recibo
bundle.min.js
bundle.min.js.map
También me gustaría ver el descomprimido bundle.js
javascript
node.js
webpack
Gracias
fuente
fuente
Error: webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead.
Puede usar un solo archivo de configuración e incluir el complemento UglifyJS condicionalmente usando una variable de entorno:
y luego simplemente configura esta variable cuando quieras minificarla:
Editar:
Como se menciona en los comentarios,
NODE_ENV
generalmente se usa (por convención) para indicar si un entorno particular es un entorno de producción o de desarrollo. Para verificarlo, también puede configurarvar PROD = (process.env.NODE_ENV === 'production')
y continuar normalmente.fuente
compress
lugar deminimize
?webpack -p
la configuración de webpack.optimize.UglifyJsPlugin en su configuración de webpack se ignorará (al menos parcialmente) (al menosmangle: false
se ignora la configuración ).webpack && webpack -p
.definePlugin
lugar, que creo que está instalado de forma predeterminada con Webpack.Puede ejecutar webpack dos veces con diferentes argumentos:
luego verifique los argumentos de la línea de comando en
webpack.config.js
:ejemplo webpack.config.js
fuente
Para agregar otra respuesta, la bandera
-p
(abreviatura de--optimize-minimize
) habilitará el UglifyJS con argumentos predeterminados.No obtendrá un paquete minificado y sin procesar de una sola ejecución ni generará paquetes con nombres diferentes, por lo que la
-p
bandera puede no cumplir con su caso de uso.Por el contrario, la
-d
opción es la abreviatura de--debug
--devtool sourcemap
--output-pathinfo
Mis webpack.config.js omite
devtool
,debug
,pathinfo
, y el plugin de minmize a favor de estas dos banderas.fuente
Tal vez llego tarde aquí, pero tengo el mismo problema, así que escribí un plugin de paquete web nominificado para este propósito.
Instalación
Uso
Al hacer lo anterior, obtendrá dos archivos library.min.js y library.js. No es necesario ejecutar webpack dos veces, ¡simplemente funciona! ^^
fuente
En mi opinión, es mucho más fácil usar la herramienta UglifyJS directamente:
npm install --save-dev uglify-js
./dst/bundle.js
archivo.Agregue un
build
comando a supackage.json
:npm run build
comando.No es necesario instalar uglify-js globalmente, solo instálelo localmente para el proyecto.
fuente
Puede crear dos configuraciones para webpack, una que minimice el código y otra que no (simplemente elimine la línea optimizar.UglifyJSPlugin) y luego ejecute ambas configuraciones al mismo tiempo
$ webpack && webpack --config webpack.config.min.js
fuente
De acuerdo con esta línea: https://github.com/pingyuanChen/webpack-uglify-js-plugin/blob/master/index.js#L117
debería ser algo como:
De hecho, puede tener múltiples compilaciones exportando diferentes configuraciones de acuerdo con sus estrategias env / argv.
fuente
minimize
en documentos. Tal vez está en desuso?funciona para mí, con
-p
bandera.fuente
Puede formatear su webpack.config.js de esta manera:
Y luego, para construirlo, ejecute sin minificar (mientras está en el directorio principal del proyecto):
Para construirlo, ejecuta minified:
Notas: Asegúrese de que para la versión no minificada cambie el nombre del archivo de salida a
library.js
y para el minificadolibrary.min.js
para que no se sobrescriban entre sí.fuente
Tuve el mismo problema y tuve que cumplir con todos estos requisitos:
Finalmente lo resolví de la siguiente manera:
webpack.config.js:
package.json:
Entonces puedo construir por (No olvides
npm install
antes):fuente
Encontré una nueva solución para este problema.
Esto usa una matriz de configuración para permitir que webpack construya la versión minificada y no minificada en paralelo. Esto hace que la construcción sea más rápida. No es necesario ejecutar el paquete web dos veces. No necesita complementos adicionales. Solo webpack.
webpack.config.js
La ejecución
webpack
solo generará la versión no minificada.La ejecución
webpack --env=production
generará la versión minificada y no minificada al mismo tiempo.fuente
Debería exportar una matriz como esta:
fuente
Puede definir dos puntos de entrada en la configuración de su paquete web, uno para sus js normales y el otro para js minificados. Luego, debe generar su paquete con su nombre y configurar el complemento UglifyJS para incluir archivos min.js. Vea el ejemplo de configuración de paquete web para más detalles:
Después de ejecutar webpack, obtendrá bundle.js y bundle.min.js en su carpeta dist, sin necesidad de un complemento adicional.
fuente