Voici mon 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})
]
};
Je construis avec
$ webpack
Dans mon dist
dossier, je reçois seulement
bundle.min.js
bundle.min.js.map
J'aimerais aussi voir le non compressé bundle.js
javascript
node.js
webpack
Je vous remercie
la source
la source
Error: webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead.
Vous pouvez utiliser un seul fichier de configuration et inclure le plugin UglifyJS sous condition à l'aide d'une variable d'environnement:
puis définissez simplement cette variable lorsque vous souhaitez la réduire:
Éditer:
Comme mentionné dans les commentaires,
NODE_ENV
est généralement utilisé (par convention) pour indiquer si un environnement particulier est un environnement de production ou de développement. Pour le vérifier, vous pouvez également définirvar PROD = (process.env.NODE_ENV === 'production')
et continuer normalement.la source
compress
place deminimize
?webpack -p
les paramètres de webpack.optimize.UglifyJsPlugin dans votre configuration de webpack seront (au moins partiellement) ignorés (au moins le paramètremangle: false
est ignoré).webpack && webpack -p
.definePlugin
place, qui je pense est installé par défaut avec Webpack.Vous pouvez exécuter Webpack deux fois avec différents arguments:
puis vérifiez les arguments de la ligne de commande dans
webpack.config.js
:exemple webpack.config.js
la source
Pour ajouter une autre réponse, le drapeau
-p
(abréviation de--optimize-minimize
) activera UglifyJS avec des arguments par défaut.Vous n'obtiendrez pas un bundle réduit et brut lors d'une seule exécution ou ne générerez pas de bundles nommés différemment, de sorte que l'
-p
indicateur peut ne pas correspondre à votre cas d'utilisation.Inversement, l'
-d
option est courte pour--debug
--devtool sourcemap
--output-pathinfo
Mon webpack.config.js passe sous silence
devtool
,debug
,pathinfo
et le minmize plug - in en faveur de ces deux drapeaux.la source
Je suis peut-être en retard ici, mais j'ai le même problème, j'ai donc écrit un plugin non-webpack à cet effet.
Installation
Usage
En procédant comme ci-dessus, vous obtiendrez deux fichiers library.min.js et library.js. Pas besoin d'exécuter le webpack deux fois, cela fonctionne! ^^
la source
À mon avis, il est beaucoup plus facile d'utiliser directement l'outil UglifyJS :
npm install --save-dev uglify-js
./dst/bundle.js
fichier.Ajoutez une
build
commande à votrepackage.json
:npm run build
commande.Pas besoin d'installer uglify-js globalement, installez-le simplement localement pour le projet.
la source
Vous pouvez créer deux configurations pour webpack, une qui réduit le code et une qui ne le fait pas (supprimez simplement la ligne d'optimiser.UglifyJSPlugin), puis exécutez les deux configurations en même temps
$ webpack && webpack --config webpack.config.min.js
la source
Selon cette ligne: https://github.com/pingyuanChen/webpack-uglify-js-plugin/blob/master/index.js#L117
devrait être quelque chose comme:
En effet, vous pouvez avoir plusieurs builds en exportant différentes configurations en fonction de vos stratégies env / argv.
la source
minimize
dans les documents. Peut-être que c'est obsolète?travaille pour moi, avec
-p
drapeau.la source
Vous pouvez formater votre webpack.config.js comme ceci:
Et puis pour le construire en exécution non minimisée (dans le répertoire principal du projet):
Pour le construire en run minifié:
Remarques: Assurez-vous que pour la version non minimisée, vous modifiez le nom du fichier de sortie pour
library.js
et pour le minifiélibrary.min.js
afin qu'ils ne se remplacent pas.la source
J'ai eu le même problème et j'ai dû répondre à toutes ces exigences:
Je l'ai finalement résolu comme suit:
webpack.config.js:
package.json:
Ensuite, je peux construire par (N'oubliez pas
npm install
avant):la source
J'ai trouvé une nouvelle solution à ce problème.
Cela utilise un tableau de configuration pour permettre au webpack de construire la version minifiée et non minifiée en parallèle. Cela rend la construction plus rapide. Pas besoin d'exécuter le webpack deux fois. Pas besoin de plugins supplémentaires. Juste webpack.
webpack.config.js
L'exécution
webpack
ne génèrera que la version non réduite.L'exécution
webpack --env=production
générera la version minifiée et non minifiée en même temps.la source
Vous devez exporter un tableau comme celui-ci:
la source
Vous pouvez définir deux points d'entrée dans votre configuration de webpack, l'un pour vos js normaux et l'autre pour les js minifiés. Ensuite, vous devez sortir votre bundle avec son nom et configurer le plugin UglifyJS pour inclure les fichiers min.js. Voir l'exemple de configuration de webpack pour plus de détails:
Après avoir exécuté webpack, vous obtiendrez bundle.js et bundle.min.js dans votre dossier dist, pas besoin de plugin supplémentaire.
la source