Gulp.js
Instalacja node i gulp
Żeby przystąpić do pracy z Gulp.js potrzebujemy mieć zainstalowany pakiet node.js, jeżeli go jeszcze nie posiadasz wejdź na stronę https://nodejs.org/en/ i wybierz Download jako: LTS (Long-term Support) Recommended For Most Users.
Następnie można już zainstalować samego Gulpa wpisując w wierszu poleceń:
npm install gulp-cli -g
Poprawność instalacji można sprawdzić komendą gulp --help
.
Teraz utwórz katalog z własnym projektem i zainicjuj package.json
oraz lokalnie Gulp.js dla danego projektu:
npm init
npm install gulp --save-dev
Interesujące pluginy dla Gulp.js
Gulp-sass
– konwertuje pliki SASS na CSSGulp-autoprefixer
– dodaje prefiksy CSSGulp-sass-lint
– sprawdza poprawność plików SASSGulp-live-server
– wirtualny serwerBrowser-sync
– inny wirtualny serwerGulp-uglify
– zmniejsza plik o spacjeRun-sequence
– uruchamia procesy kolejno po sobiegulpfile.js
gulpfile.js
. To w nim odbędzie się cała konfiguracja zadań.
Na początek wyświetlenie w konsoli Hello World!
var gulp = require("gulp");
gulp.task("hello", function(){
console.log("Hello world!");
});
gulp.task('default', ['hello']);
Uruchomienie powyższego odbywa się poprzez wpisanie w konsoli polecenia gulp
.
Teraz już coś bardziej sensownego czyli deklaracja pojedynczego pluginu.
Praktyczny przykład budowy gulpfile.js [deklaracja pluginu ‚gulp-live-server’]:
// deklaracja gulp i używanych pluginów
var gulp = require('gulp');
var gls = require('gulp-live-server');
// lista zadań, każde gulp.task to inne zadanie
gulp.task('serve', function() {
var server = gls.static(); //lub gls.static('public', 3000);
server.start();
gulp.watch(['des/**/*.css', 'des/**/*.html'], function (file) {
server.notify.apply(server, [file]);
});
});
// ustawienie wywołania kolejnych pluginów, ich kolejność
gulp.task('default', ['serve’]);
W gulp.watch
wskazane zostały pliki oraz katalogi, użyte gwiazdki oznaczają:
** – zastępuje dowolny katalog (przeszukaj wszystkie katalogi),
*(gwiazdka) – zastępuje dowolny plik (np: *.scss – dowolny plik SASS),
*/ – bieżący katalog
Cały plik Gulpfile.js z kilkoma pluginami
var gulp = require("gulp"),
uglify = require('gulp-uglify'),
browserSync = require('browser-sync').create();
gulp.task('browser-sync', function() {
browserSync.init({
server: {
baseDir: "./"
}
});
});
gulp.task('compress', function () {
return gulp.src('./all.js')
.pipe(uglify())
.pipe(gulp.dest('out/'))
.on('error', function(err) {
console.error('Error in compress task', err.toString());
});
});
gulp.task('art', ['compress', 'browser-sync', 'watch']);