Nach ein paar Stunden zu verbringen Untersuchung Wie man neue Build-Prozesse baut, dachte ich, dass andere von dem profitieren könnten, was ich getan habe. Ich beantworte diese alte Frage, da sie in Google hoch erscheint.
Mein Anwendungsfall ist ein wenig mehr beteiligt als OP gefragt. Ich habe drei Build-Szenarien: Entwicklung, Test, Produktion. Da die meisten professionellen Entwickler die gleichen Anforderungen haben, glaube ich, dass es entschuldbar ist, über den Umfang der ursprünglichen Frage hinauszugehen.
In der Entwicklung verwende ich Watchify, um ein unkomprimiertes Bundle mit Quellzuordnung zu erstellen, wann immer sich eine JavaScript-Datei ändert. Ich möchte nicht den Uglify-Schritt, da ich möchte, dass der Build fertig ist, bevor ich in den Browser getippt habe, um auf "Refresh" zu klicken, und es ist sowieso kein Vorteil während der Entwicklung. Um dies zu erreichen Ich benutze:
watchify app/index.js --debug -o app/bundle.js -v
Zum Testen, ich mag den exakt gleichen Code wie Produktion (z uglified), aber ich möchte auch eine Quelle Karte. Dies erreiche ich mit:
browserify app/index.js -d | uglifyjs -cm -o app/bundle.js --source-map "content=inline,filename='bundle.js',url='bundle.js.map'"
Für die Produktion, wird der Code mit uglify komprimiert und es gibt keine Quelle Karte.
browserify app/index.js | uglifyjs -cm > app/bundle.js
Hinweise:
Ich habe diese Anweisungen auf Windows 7, MacOS High Sierra und Ubuntu 16.04 verwendet.
Ich habe die Verwendung von minifyify gestoppt, weil es nicht mehr gepflegt wird.
Es gibt vielleicht bessere Möglichkeiten als das, was ich teile. Ich habe gelesen, dass es offensichtlich möglich ist, eine bessere Komprimierung zu erhalten, indem man alle Quelldateien vor der Kombination mit browserify uglifiziert.Wenn Sie mehr Zeit dafür haben als ich, sollten Sie das untersuchen.
Wenn Sie nicht watchify haben, verunstalten-js oder browserify bereits installiert ist, installieren Sie sie mit npm so:
npm install -g browserify
npm install -g watchify
npm install -g uglify-js
Wenn Sie alte Versionen installiert empfehle ich Ihnen ein Upgrade. Besonders uglify-js, da sie eine wichtige Änderung an Befehlszeilenargumenten vorgenommen haben, die viele Informationen in Google ungültig macht.
Die Verkleinerung liegt außerhalb des Bereichs von browserify. Sie müssen die Ausgabe über einen Minifier ausführen. – generalhenry