Próbuję użyć Gulp do:
- Weź 3 określone pliki javascript, połącz je, a następnie zapisz wynik do pliku (concat.js)
- Weź ten połączony plik i uglify / zminifikuj go, a następnie zapisz wynik w innym pliku (uglify.js)
Na razie mam następujący kod
var gulp = require('gulp'),
gp_concat = require('gulp-concat'),
gp_uglify = require('gulp-uglify');
gulp.task('js-fef', function(){
return gulp.src(['file1.js', 'file2.js', 'file3.js'])
.pipe(gp_concat('concat.js'))
.pipe(gp_uglify())
.pipe(gulp.dest('js'));
});
gulp.task('default', ['js-fef'], function(){});
Jednak operacja uglify nie działa lub plik nie jest generowany z jakiegoś powodu.
Co muszę zrobić, aby to się stało?
Odpowiedzi:
Okazuje się, że
gulp-rename
najpierw musiałem użyć, a także wypisać połączony plik przed „uglifikacją”. Oto kod:Na
grunt
początku było to trochę zagmatwane, ale teraz ma sens. Mam nadzieję, że pomoże togulp
noobom.A jeśli potrzebujesz map źródeł, oto zaktualizowany kod:
Zobacz gulp-sourcemaps, aby uzyskać więcej informacji na temat opcji i konfiguracji.
źródło
gulp.task
powinien wyglądać następująco:.pipe(gp_concat('concat.js'))
Mój plik gulp tworzy ostateczny skompilowany-bundle-min.js, mam nadzieję, że to komuś pomoże.
źródło
Rozwiązanie użyciu
gulp-uglify
,gulp-concat
agulp-sourcemaps
. To jest z projektu, nad którym pracuję.To łączy i kompresuje wszystkie Twoje
scripts
pliki, umieszcza je w pliku o nazwieall_the_things.js
. Plik kończy się specjalną liniąKtóry mówi przeglądarce, aby szukała tego pliku mapy, który również zapisuje.
źródło
Twoje rozwiązanie nie działa, ponieważ musisz zapisać plik po procesie konkatowania, a następnie uglifikować i zapisać ponownie. Nie musisz zmieniać nazwy pliku między concat a uglify.
źródło
10 czerwca 2015 r .: Nota autora
gulp-uglifyjs
:18 lutego 2015 r .:
gulp-uglify
igulp-concat
oba działają dobrze zgulp-sourcemaps
teraz. Po prostu upewnij się, że ustawiłeśnewLine
poprawnie opcjęgulp-concat
; Polecam\n;
.Oryginalna odpowiedź (grudzień 2014 r.): Zamiast tego użyj gulp-uglifyjs .
gulp-concat
niekoniecznie jest bezpieczne; musi poprawnie obsługiwać końcowe średniki.gulp-uglify
również nie obsługuje map źródłowych. Oto fragment projektu, nad którym pracuję:źródło
gulp-concat
nie (gulp-uglify
nie pozwoli ci zminifikować wielu plików, więc musisz najpierw połączyć). Ponadtogulp-concat
używa\r\n
domyślnie, co może powodować problemy, jeśli pliki JS nie zostaną poprawnie zakończone. Ale tak, teraz, gdy jest wsparcie, prawdopodobnie lepiej wybrać tę trasę, ponieważ jest bardziej elastyczna.używamy poniższej konfiguracji, aby zrobić coś podobnego
przykładowy plik GulpDS znajduje się poniżej:
źródło