@DenJel

Gulp: что не так со скриптом, синхронный вызов? Изменение URL?

помогите, пожалуйста, разобраться, что не так с таской? Все таски по отдельности работают, но я не могу сделать синхронную цепочку, сначала должна отработать fontmin - конвертер шрифтов, затем fonts-concat - объединить все в 1 css и потом clean -удалить все css'ки, кроме той, чтоо бразуется предыдущей таской.

То есть при вызове gulp fonts должны сначала отработать предыдущие 2 таски. Но кидает ошибку Syntax Error. Unexpected token function, на функцию, которая после зависимости стоит.

Так же кто знает, как реализовать изменение URL'ов в конечном fonts.css. Он лежит в другой папочке со всеми CSS'ками, но URL там остаются прежние, как их обработать? Мне нужно просто добавить в начало "../fonts/"
gulp.task('fontmin', function() {
    return gulp.src('./fonts/ttf/*.ttf')
        .pipe(fontmin())
        .pipe(gulp.dest('./fonts/'));
});

gulp.task('fonts-concat', ['fontmin'] function() {
  return gulp.src('./fonts/*.css')
    .pipe(concat('fonts.css'))
    .pipe(gulp.dest('./css/'));
});

gulp.task('fonts', ['fonts-concat', 'fontmin'] function() {
    return gulp.src('./fonts/*.css', {read: false})
        .pipe(clean());
});
  • Вопрос задан
  • 1078 просмотров
Решения вопроса 1
Это особенность gulp вопреки тому что вы пишите в последнем таске:
['fonts-concat', 'fontmin']
Gulp не будет выполнять их последовательно. А вот если вы напишите просто:
gulp.task('fonts', ['fonts-concat'] function() {
    return gulp.src('./fonts/*.css', {read: false})
        .pipe(clean());
});

То у вас перед fonts , будет запущен fonts-concat в свою очередь перед fonts-concat будет запущен fontmin и в итоге вы получите нужную цепочку. А что касается замены адреса, то создайте еще один таск используя gulp-replace или его аналог.
Как край вы можите использовать gulp-run-sequence.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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