Je viens de commencer à utiliser browserify , mais je ne trouve pas de documentation sur la façon de le faire déborder d'une sortie minifiée.
Donc je regarde quelque chose comme:
$> browserify main.js > bundle.js --minified
Je viens de commencer à utiliser browserify , mais je ne trouve pas de documentation sur la façon de le faire déborder d'une sortie minifiée.
Donc je regarde quelque chose comme:
$> browserify main.js > bundle.js --minified
Réponses:
Passez-le à travers uglifyjs:
Vous pouvez l'installer en utilisant npm comme ceci:
la source
A partir de 3.38.x vous pouvez utiliser mon minifyify plugin rapetisser votre paquet et ont encore sourcemaps utilisables. Ce n'est pas possible avec les autres solutions - le mieux que vous puissiez faire est de revenir au bundle non compressé. Minifyify maps jusqu'à vos fichiers source séparés (oui, même à coffeescript!)
la source
Ou utilisez la transformation uglifyify qui "vous donne l'avantage d'appliquer la transformation" squeeze "d'Uglify avant qu'elle ne soit traitée par Browserify, ce qui signifie que vous pouvez supprimer les chemins de code morts pour les exigences conditionnelles."
la source
Après avoir passé quelques heures à étudier comment construire de nouveaux processus de construction, j'ai pensé que d'autres pourraient bénéficier de ce que j'ai fini par faire. Je réponds à cette vieille question car elle apparaît haut dans Google.
Mon cas d'utilisation est un peu plus complexe que celui demandé par OP. J'ai trois scénarios de construction: développement, test, production. Comme la plupart des développeurs professionnels auront les mêmes exigences, je pense qu'il est excusable d'aller au-delà de la portée de la question initiale.
En développement , j'utilise watchify pour créer un bundle non compressé avec une carte source chaque fois qu'un fichier JavaScript change. Je ne veux pas que l'étape uglify car je veux que la construction se termine avant que j'ai alt-tabed dans le navigateur pour appuyer sur Actualiser et cela n'a aucun avantage pendant le développement de toute façon. Pour y parvenir, j'utilise:
Pour les tests , je veux exactement le même code que la production (par exemple uglifié) mais je veux aussi une carte source. J'y parviens avec:
browserify app/index.js -d | uglifyjs -cm -o app/bundle.js --source-map "content=inline,filename='bundle.js',url='bundle.js.map'"
Pour la production , le code est compressé avec uglify et il n'y a pas de carte source.
Remarques:
J'ai utilisé ces instructions sur Windows 7, MacOS High Sierra et Ubuntu 16.04.
J'ai arrêté d'utiliser minifyify car il n'est plus maintenu.
Il y a peut-être de meilleures façons que ce que je partage. J'ai lu qu'il est apparemment possible d'obtenir une compression supérieure en modifiant tous les fichiers sources avant de les combiner avec browserify. Si vous avez plus de temps à y consacrer que moi, vous voudrez peut-être enquêter là-dessus.
Si vous n'avez pas encore installé watchify, uglify-js ou browserify, installez-les avec npm ainsi:
Si vous avez d'anciennes versions installées, je vous recommande de mettre à niveau. Surtout uglify-js car ils ont apporté une modification radicale aux arguments de ligne de commande qui invalide de nombreuses informations qui apparaissent dans Google.
la source
Plus besoin d'utiliser des plugins pour minifier tout en préservant une carte source:
browserify main.js --debug | uglifyjs --in-source-map inline --source-map-inline > bundle.js
la source
J'aime terser qui prend en charge ES6 + et une bonne comporession aussi.
Installez globalement:
la source