Natknąłem się na oficjalną stronę npm gulp-uglify.
Uwaga zalecenie:
Aby prawidłowo obsługiwać warunki błędach ze strumieni Węzeł ten projekt zaleca stosowanie pump. Aby uzyskać więcej informacji, zobacz Why Use Pump?.
Moja implementacja przykład na powyższej stronie jest:
gulpfile.js
var gulp = require('gulp');
var pump = require('pump');
// the npm page states:
// can be a git checkout or another module
// (such as `uglify-js-harmony` for ES6 support)
var uglifyjs = require('uglify-js-harmony');
var minifier = require('gulp-uglify/minifier');
var concat = require('gulp-concat');
gulp.task('compress', function (cb) {
// the 'options' argument is included in the example,
// but i don't know what it does or how it can be removed
var options = {
preserveComments: 'license'
};
pump([
gulp.src('my_scripts/*.js'), // gets all js scripts in this folder
minifier(options, uglifyjs),
concat('my_bundled_script.js'), // concatenates all scripts into this file
gulp.dest('dist') // puts the file into this folder
],cb
);
});
package.json
{
"devDependencies": {
"gulp": "latest",
"pump": "latest",
"gulp-concat": "latest",
"gulp-uglify": "latest",
"uglify-js-harmony": "latest"
},
"dependencies": {}
}
Wyniki
Bez użycia uglify-js-harmony
:
pump
był pomocny w zlokalizowaniu gdzie przyszedł błąd z (przy użyciu gulp-uglify
)
- plikiem, który miał
let
oświadczenie powodowało błędy
Podczas korzystania uglify-js-harmony
, błędy nie wystąpiły.
Inne uwagi:
Powyższa strona aktualnie wyświetla:
// can be a git checkout or another module
// (such as `uglify-js-harmony` for ES6 support)
var uglifyjs = require('uglify-js');
Ale podczas instalacji uglify-js-harmony
Dostałem komunikat ostrzegawczy:
KMP WARN przestarzałe zeszpecić-JS-harmonię @ 2.7.7: przestarzałe na rzecz uglify-es
Kiedy próbowałem użyć uglify-es
zamiast uglify-js-harmony
jednak mam komunikat o błędzie, podobny do tego, udokumentowany tutaj:
https://github.com/terinjokes/gulp-uglify/issues/287
Starałem się śledzić wątek emisyjnej stamtąd ale zabłądził i nie może znaleźć ostatecznego rozwiązania, jak wdrożyć uglify-es
.
Napotkałem podobny problem z wulgaryzmem. Wystąpił błąd "Nieoczekiwana nazwa tokena" i ", oczekiwano punc«; ", gdy napotkał słowo kluczowe" let "w deklaracji pętli for. 'for (niech i = ca.length - 1; i> = 0; i -)'. Zmiana 'let' na' var' wydaje się rozwiązać problem. – Aaaron