Лекция
Привет, сегодня поговорим про gulp js - потоковый сборщик проектов на js , обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое gulp js - потоковый сборщик проектов на js , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend).
Gulp.js это потоковый сборщик проектов на JS. Он использует Stream и действительно является очень быстрым. Для примера у меня есть проект где около тысячи stylus файлов, GruntJS нужно примерно 2.5 секунды на сборку и 2 секунды на обработку autoprefixer'ом. Gulp все это делает за 0.5 секунды выигрывая у GruntJS минимум в 4 раза.|--/assets // Компоненты
|--|--/template
|--|--/stylus
|--|--/js
|--|--/img
|--/build // Каталог релиза
|--/public // Каталог разработки
|--package.json
|--gulpfile.js
$ mkdir assets public build assets/js assets/img assets/stylus assets/template
$ touch gulpfile.js
$ sudo npm install gulp -g
$ npm init
$ npm install gulp gulp-jade gulp-stylus gulp-livereload gulp-myth gulp-csso gulp-imagemin gulp-uglify gulp-concat connect --save-dev
var lr = require('tiny-lr'), // Минивебсервер для livereload
gulp = require('gulp'), // Сообственно Gulp JS
jade = require('gulp-jade'), // Плагин для Jade
stylus = require('gulp-stylus'), // Плагин для Stylus
livereload = require('gulp-livereload'), // Livereload для Gulp
myth = require('gulp-myth'), // Плагин для Myth - http://www.myth.io/
csso = require('gulp-csso'), // Минификация CSS
imagemin = require('gulp-imagemin'), // Минификация изображений
uglify = require('gulp-uglify'), // Минификация JS
concat = require('gulp-concat'), // Склейка файлов
connect = require('connect'), // Webserver
server = lr();
// Собираем Stylus
gulp.task('stylus', function() {
gulp.src('./assets/stylus/screen.styl')
.pipe(stylus({
use: ['nib']
})) // собираем stylus
.on('error', console.log) // Если есть ошибки, выводим и продолжаем
.pipe(myth()) // добавляем префиксы - http://www.myth.io/
.pipe(gulp.dest('./public/css/')) // записываем css
.pipe(livereload(server)); // даем команду на перезагрузку css
});
// Локальный сервер для разработки
gulp.task('http-server', function() {
connect()
.use(require('connect-livereload')())
.use(connect.static('./public'))
.listen('9000');
console.log('Server listening on http://localhost:9000');
});
// Запуск сервера разработки gulp watch
gulp.task('watch', function() {
// Предварительная сборка проекта
gulp.run('stylus');
gulp.run('jade');
gulp.run('images');
gulp.run('js');
// Подключаем Livereload
server.listen(35729, function(err) {
if (err) return console.log(err);
gulp.watch('assets/stylus/**/*.styl', function() {
gulp.run('stylus');
});
gulp.watch('assets/template/**/*.jade', function() {
gulp.run('jade');
});
gulp.watch('assets/img/**/*', function() {
gulp.run('images');
});
gulp.watch('assets/js/**/*', function() {
gulp.run('js');
});
});
gulp.run('http-server');
});
$ gulp watch
gulp.task('build', function() {
// css
gulp.src('./assets/stylus/screen.styl')
.pipe(stylus({
use: ['nib']
})) // собираем stylus
.pipe(myth()) // добавляем префиксы - http://www.myth.io/
.pipe(csso()) // минимизируем css
.pipe(gulp.dest('./build/css/')) // записываем css
// jade
gulp.src(['./assets/template/*.jade', '!./assets/template/_*.jade'])
.pipe(jade())
.pipe(gulp.dest('./build/'))
// js
gulp.src(['./assets/js/**/*.js', '!./assets/js/vendor/**/*.js'])
.pipe(concat('index.js'))
.pipe(uglify())
.pipe(gulp.dest('./build/js'));
// image
gulp.src('./assets/img/**/*')
.pipe(imagemin())
.pipe(gulp.dest('./build/img'))
});
$ gulp build
Надеюсь, эта статья про gulp js - потоковый сборщик проектов на js , была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое gulp js - потоковый сборщик проектов на js и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)
Из статьи мы узнали кратко, но содержательно про gulp js - потоковый сборщик проектов на js
Комментарии
Оставить комментарий
Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)
Термины: Выполнение скриптов на стороне клиента JavaScript, jqvery, JS фреймворки (Frontend)