@caof19

Как запустить gulp task из кода?

Здраствуйте, у меня есть сборка gulp в ней есть таск для сборки less основного файла, выглядит так
gulp.task('less1', function() {
    return gulp.src(src.less)
        .pipe(plumber())
        .pipe(less())
        .pipe(min())
        .pipe(pref({
            browsers: ['last 8 versions'],
            cascade: false
        }))
        .pipe(gulp.dest('app/css'))
        .pipe(reload({stream:true}));
})

Так же в голову пришла идея, в отдельных файлах писать правила для медиа запросов, выглядит так
gulp.task('media', function() {
    return gulp.src(src.media)
        .pipe(plumber())
        .pipe(less())
        .pipe(min())
        .pipe(pref({
            browsers: ['last 8 versions'],
            cascade: false
        }))
        .pipe(reload({stream:true}));
})

Так же есть вотчер
gulp.task('watcher', function() {
    gulp.watch(src.less, ['less1']);
    gulp.watch(src.media, ['media']);
})

gulp.task('default', ['watcher', 'sync'])

Проблема в том, что изменения в файлах с медиа применяются только когда я сохраняю основной файл стилей. В основном файле медиа файлы подключены через импорт.
Вопрос в следующем, могу ли я как то решить этот вопрос, не используя плагин concat?
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Gulp.js
frontend developer
Так же в голову пришла идея, в отдельных файлах писать правила для медиа запросов, выглядит так

Очень плохая мысль.
Вы используете препроцессор. Используйте на полную. Пишите правила медиа прямо внутри селектора, к которому они применяются.

Плюс начните использовать плагин для комбинации медиа (combine-mq и подобные) — они в результирующем css соберут все медиа в конце файла.

По вопросу: вы можете вызывать несколько тасков

gulp.watch(src.less, ['less1', 'media']);
gulp.watch(src.media, ['media']);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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