Pull to refresh

Comments 30

Вообще, странно, что в конце статьи «Самые нужные плагины для Gulp» приведен довольно объемный список плагинов для Grunt. Так задумано?
Пардон, забыл оформить как следует. Это как раз те крутые плагины, которые есть под Grunt, но нет под Gulp
Интересно, вчера только думал про конвертировании шаблонов в angular jst и тут на тебе — gulp-angular-templatecache
У вас во время неаккуратной копипасты (окей, перевода) отвалилась часть ссылок и повылазили лишние <code>.
По-моему, этому посту не хватает немного уважения к Хабру и его читателям.
Ну та самая копипаста тоже моя. И пишу я сначала на русском. Уважение к Хабру и его читателям у меня безгранично. Не хватило внимательности. Для меня было не просто, перебрать почти две сотни не дублирующихся и самое главное полезных плагинов для Grunt и Gulp, и написать без ошибок все на русском, английском в Markdown и HTML. Но признаюсь, я сам по себе не очень внимательный. Всегда борюсь с этим. В данном случае проиграл :)
Про полезность коллекций плагинов в отрыве от задач я уже в прошлый раз высказался — здесь та же история.
К gulp-rev хорошо бы приписать gulp-rev-collector, который позволяет использовать манифест-файл(ы) gulp-rev для поиска ссылок на ассеты в шаблонах и замены их на аналоги с приписанным номером ревизии. Проще говоря в шаблоне пишем /css/index.css, a он заменит это на /css/index-71543b2c.css во всех шаблонах по указанному пути.
Извиняюсь за вопрос, а вы можете подсказать что он именно делает?
Sourcemap в представлениях не нуждается, особо удобен при работе например с browserify. А gulp-rigger это как вы догадались просто обертка для rigger который позволяет вклеивать или включать кусочки одних файлов в другие.
Некоторые плагины из подборки в статусе deprecated: gulp-clean, gulp-plato, gulp-bower-files

gulp-uncss — у вас ссылка не на тот плагин, на gulp-uncss-task, который тоже deprecated

gulp-copy — плагин сомнительной полезности, копировать файлы гулп умеет из коробки.

gulp-express — запускает не только Express.js сервер, а вообще любой
Спасибо большое за коммент. Uncss исправил, а вот по поводу Copy есть вопрос. Также из коробки работает gulp-requirejs и gulp-browserify как оказалось (просто сам я привык к grunt). Дак вот, все эти плагины мне просто удалить или как их посоветуете выделить, что они работают из коробки?
gulp-copy не нужен, потому что gulp умеет выполнять задачи без трансформации, как
gulp.src('./source/js/**/*.*', {base: './source'})
  .pipe(gulp.dest('./dist')) //скопирует папку js из source в dist
  .pipe(gulp.dest('./deploy')); //можно использовать несколько раз


По поводу requirejs и browserify, вот что говорится в руководстве для написания плагинов
Your plugin should not do something that can be done easily with an existing node module
Wrapping every possible thing just for the sake of wrapping it will pollute the ecosystem with low quality plugins that don't make sense within the gulp paradigm.

Плагин не должен делать то, что легко делается существующим node модулем
Оборачивание всего подряд ради обертки загрязняет екосистему плагинами низкого качества, что противоречит парадигме gulp

Так что да, не нужны
gulp-requirejs — простая обертка
gulp-browserify — не поддерживается, вместо этого сам дает ссылку на рецепты, где способ запуска browserify для gulp
Сразу видно, автор ничего не использовал на практике. gulp-htmlmin — плохой плагин, вы с ним даже распространенные библиотеки (типа angularStrap) не скомпилите. И хорошо было бы сперва в этот списочек заглянуть github.com/gulpjs/plugins/blob/master/src/blackList.json
Прямо таки ничего?

Конечно же я не все использовал, но не думаю, что это для кого окажется новостью. Про blackList уже уже в курсе, сам не знал про него. В большинстве случаев работаю с Grunt. Скоро внесу все правки.
Пользуясь случаем, хочу попросить рекомендации, чем оптимизировать Handlebars тимплейты. Пробовал разными html-минификаторами, но они все равно оставляют ненужные переносы строк, от которых плывет разметка.
Эммм… а не лучше их прекомпилировать и жать js минификатором? Зачем оставлять исходный шаблон, когда можно его сразу компилировать?
Тимплейты итак компилируются. Проблема в том, что компилированый тимплейт, это по сути тот же html, представленный в виде строк, с обвязкой необходимой логики. И эти строки — они содержат очень много мусора. Поэтому перед тем, как скормить тимплейт прекомпилятору, необходимо его почистить.
По поводу shorthand, его можно интегрировать с gulp, например так:

var through2 = require('through2');
var shrthnd = require('shrthnd');

.pipe(through2.obj(function (file, enc, next) {
    var contents = file.contents.toString();
    var res = shrthnd(contents).string;
    console.log(file.path + ": shrthnd saved " + (contents.length - res.length) + " bytes");
    file.contents = new Buffer(res);
    next(null, file);
}))
а может кто подскажет как подружить gulp-less, gulp-sourcemaps и gulp-autoprefixer?
Для Stylus у меня сделано так (думаю можно легко переделать для Less).
gulp.src([paths.src + "/app/index.styl", paths.src + "/app/vendor.styl"])
  .pipe($.plumber({
    errorHandler: $.notify.onError("Error: <%= error.message %>")
  }))
  .pipe($.sourcemaps.init())
  .pipe($.stylus({
    use: [nib()],
    compress: true
  }))
  .pipe($.autoprefixer({
    browsers: ['last 2 versions', 'ie 9']
  }))
  .pipe($.sourcemaps.write())
  .pipe(gulp.dest(paths.tmp + "/serve/app/"))

Для загрузки плагинов используется gulp-load-plugins
gulp-release кстати просто пустой файл
gulp-clean — deprecated, рекомендовано использовать rimraf, типа:

var rimraf = require('rimraf');

gulp.task('clean', function(cb){
  rimraf('./dist', cb);
});
Sign up to leave a comment.

Articles