Comment obtenir minifiés sortie avec browserify?
Juste commencé à utiliser browserify, mais je ne trouve pas de documentation pour savoir comment l'obtenir de se répandre hors minifiés de sortie.
Je suis à la recherche de quelque chose comme:
$> browserify main.js > bundle.js --minified
- Minification est en dehors du champ d'application de browserify, vous devrez exécuter à la sortie par l'intermédiaire d'un minifier.
Vous devez vous connecter pour publier un commentaire.
Tuyau à travers uglifyjs:
Vous pouvez l'installer à l'aide de npm comme suit:
sourceMapIn
option sur grunt-uglify (github.com/gruntjs/grunt-contrib-uglify#sourcemapin) pour passer à la source de la carte que browserify créé. Être au courant de ce bug, si: github.com/gruntjs/grunt-contrib-uglify/issues/195De 3.38.x vous pouvez utiliser mon minifyify plugin pour rapetisser votre bundle et encore utilisable sourcemaps. Ce n'est pas possible avec les autres solutions, le meilleur que vous pouvez faire est de carte de retour à la non compressé bundle. Minifyify cartes de tous les le chemin du retour à votre séparer les fichiers source (oui, même à coffeescript!)
Ou de l'utilisation uglifyify transformer les qui "vous donne l'avantage d'appliquer Uglify du "squeeze" de transformation avant d'être traitées par Browserify, ce qui signifie que vous pouvez supprimer morts chemins de code conditionnel exige."
Après avoir passé quelques heures à enquêter sur la façon de construire de nouveaux processus de build, j'ai pensé que d'autres peuvent bénéficier de ce que j'ai fait. Je vais répondre sur cette vieille question, tel qu'il apparaît élevé dans Google.
Mon cas d'utilisation est un peu plus complexe que l'OP a demandé. J'ai trois scénarios: le développement, les essais, la production. Comme la plupart des professionnels, les développeurs auront les mêmes exigences, je pense que c'est excusable pour aller au-delà de la portée de la question d'origine.
Dans le développement, j'utilise watchify de construire un non compressé bundle avec la carte source à chaque fois qu'un fichier JavaScript changements. Je ne veux pas le uglify étape, car je veux la construction à la finition avant, j'ai alt-onglets à l'explorateur de cliquer sur "actualiser" et ce n'est pas de tout avantage au cours du développement de toute façon. Pour réaliser cela, j'utilise:
Pour les tests, je veux exactement le même code que la production (p. ex. uglified) mais je veux aussi une source de la carte. J'ai réaliser avec:
Pour la production, le code est compressé avec uglify et il n'y a pas de carte source.
Notes:
J'ai utilisé ces instructions sur Windows 7, MacOS High Sierra et Ubuntu 16.04.
J'ai arrêté de l'utiliser minifyify parce qu'il n'est plus maintenu.
Il y a peut-être mieux que ce que je partage. J'ai lu qu'il est apparemment possible d'obtenir un niveau de compression supérieur par uglifying tous les fichiers source avant de les combiner avec browserify. Si vous avez plus de temps à passer sur ce que j'ai, vous pouvez étudier.
Si vous n'avez pas watchify, uglify-js ou browserify déjà installé, installez-les avec mnp ainsi:
Si vous avez de vieilles versions installées, je vous recommande de mise à niveau. En particulier uglify-js comme ils ont fait d'une modification de rupture d'arguments de ligne de commande qui invalide beaucoup d'informations qui vient dans Google.
Pas besoin d'utiliser des plugins plus à rapetisser tout en préservant une source de la carte: