@raulvodov
UI/UX Designer

Какой js код более грамотный для Gulp?

Я в этом деле очень зеленый, поэтому возможно вопрос может показаться странным. Вообщем осваиваю Gulp. Делал под себя набор по видеоуроку, получился следующий код (вставлю ниже). При этом знакомый скинул мне свой код, похожий, но немного другой. Тоже прикреплю его. Вопрос в том, какой из кодов сделан более грамотно с точки зрения законов js или даже не знаю как это назвать. Есть небольшие различия, он использует другой препроцессов Стилус, а я Sass, а так же в моем коде имеется автопрефиксер. На эти различия просьба не обращать внимание.

1) Мой код по уроку:

var gulp         = require('gulp'),
		sass         = require('gulp-sass'),
		browserSync  = require('browser-sync'),
		autoprefixer = require('gulp-autoprefixer');

gulp.task('sass', function() {
	return gulp.src('app/sass/**/*.sass')
		.pipe(sass())
		.pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], { cascade: true }))
		.pipe(gulp.dest('app/css/'))
		.pipe(browserSync.reload({stream: true}))
});

gulp.task('browser-sync', function() {
	browserSync({
		server: {
			baseDir: 'app'
		},
		notify: false
	})
});

gulp.task('watch', ['browser-sync', 'sass'], function () {
	gulp.watch('app/sass/**/*.sass', ['sass']);
	gulp.watch('app/**/*.html', browserSync.reload);
	gulp.watch('app/js/**/*.js', browserSync.reload);
});

gulp.task('default', ['watch']);


2) Код товарища:

var gulp = require('gulp'),
stylus = require('gulp-stylus'),
browserSync = require('browser-sync').create();

gulp.task('styles', function () {
return gulp.src('css/*.styl')
.pipe(stylus())
.pipe(gulp.dest('css/'))
.pipe(browserSync.stream());
});

gulp.task('watch', ['styles'], function () {

browserSync.init({
open: true,
server: {
baseDir: "./"
},
notify: true
});

gulp.watch('css/**/*.styl', ['styles']);
gulp.watch('js/*.js').on('change', browserSync.reload);
gulp.watch('*.html').on('change', browserSync.reload);

});

gulp.task('default', ['watch']);
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Gulp.js
frontend developer
Определенно, ваш код больше соответствует "best practic".
  1. У вас есть вотчер, у товарища его нет. Какой у него тогда смысл запускать браузер-синк? =))
  2. У товарища нет дефолтной задачи.
  3. При этом товарищ более правильно использует браузер-синк browserSync = require('browser-sync').create(); - через создание объекта. Хотя на практике я разницы не вижу и сам использую простой реквайр без криэйт.
  4. У обоих есть косяк - отсутствует обработка ошибок. Если в sass/stylus файле будет синтаксическая ошибка всё упадет и нужно будет перезапускать.
  5. Ну у вас оформлено поаккуратнее еще ))


В остальном - одинаково. Вас наверное смущает использование другого синтаксиса для browser-sync? Просто почитайте доку и узнайте как правильно использовать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
какая разница как ты подключаешь и используешь плагины? на странице npm есть документация и код как его юзать (к примеру для sass https://www.npmjs.com/package/gulp-sass). берешь и юзаешь как тебе будет удобно.
Ответ написан
Комментировать
Krasnodar_etc
@Krasnodar_etc
fundraiseup
Всё равно абсолютно. Твой выглядит чуть привычнее
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы