2016-07-28 2 views
0

После запуска моей задачи для копирования шрифтов из bower_component браузер, похоже, путается с правильным путем.После того, как браузер gulp не смог найти шрифты

Это глоток задача для шрифтов:

// Fonts 
gulp.task('fonts', function() { 
    return gulp.src(bowerDir + '/open-sans-fontface/fonts/**/*.{eot,svg,ttf,woff,woff2}', function (err) {}) 
     .pipe(gulp.dest(dest + 'fonts')); 
}); 

И это глоток задача стилей:

// Styles 
gulp.task('styles', function() { 
    return plugins.sass(src + 'styles/main.scss', { 
      style: 'expanded', 
      loadPath: [ 
      // './resources/sass', 
      bowerDir + '/bootstrap-sass/assets/stylesheets', 
      bowerDir + '/font-awesome/scss', 
      bowerDir + '/open-sans-fontface' 
      ] 
     }) 
     .pipe(plugins.autoprefixer('last 2 version')) 
     .pipe(gulp.dest(dest + 'styles')) 
     .pipe(plugins.rename({ suffix: '.min' })) 
     .pipe(plugins.cssnano()) 
     .pipe(gulp.dest(dest + 'styles')) 
     .pipe(reload({stream: true})); 
     // .pipe(plugins.notify({ message: 'Styles task complete' })); 
}); 

Как настроить файл глоток, поэтому созданный внешний вид CSS-файлы для правильного пути?

ответ

2

Вы можете использовать gulp-replace. Пример:

gulp.task('styles', function() { 
    return gulp.src('src/styles/main.scss') 
    .pipe(plugins.sass()) 
    .pipe(plugins.replace('original-path/fonts/', 'new-path/fonts/')) 
    .pipe(gulp.dest('dist')); 
}); 

Если, например, bootstrap имел шрифты под original-path/fonts/, этот путь теперь будет заменен new-path/fonts/ после выполнения задачи styles.

+0

Спасибо MadScone, но, к сожалению, ничего не изменилось. Я добавил код в мою задачу стиля: .pipe (plugins.replace (dest + 'style/fonts', dest + 'fonts/open-sans)), но браузер снова по-прежнему ищет неправильный путь – moesphemie

+0

Ваш первый аргумент 'replace()' не выглядит правильным. Я не думаю, что исходный путь к вашим шрифтам будет 'dest + 'style/fonts''. Я не знаю, что такое 'dest', но предполагая, что это что-то вроде« build »... Это означало бы, что' replace() 'заменяет' build/style/fonts' 'на' build/fonts/open-sans'. Но open-sans не будет указывать на 'build/style/fonts'. Я думаю, вы, вероятно, хотите что-то вроде 'plugins.replace ('./ fonts', './fonts/open-sans')'. Первый аргумент - это исходный URL-адрес, который вы хотите изменить. – MadScone

+0

Спасибо за помощь :) Я сейчас исправил проблему. Я взглянул на main.css и немного поиграл с плагином замены, пока не получил его на работу! – moesphemie

Смежные вопросы