2015-05-20 5 views
9

Когда я минимизировал свой css, у меня остался неправильный путь к шрифтам из разных библиотек. Таким образом, я создал задачу перенести шрифты из моей bower_components/ папки в dist/public/fonts:Gulp не создает папку?

gulp.task('doit', function() { 
    gulp.src(["public/bower_components/bootstrap/dist/fonts/*", "public/bower_components/font-awesome/fonts/*"]) 
     .pipe(gulp.dest("dist/public/fonts")); 
}); 

В принципе, что должен бросить все шрифты, мне нужно в папку общих шрифтов, которые моя уменьшенная CSS теперь должна быть в состоянии получить доступ.

Но после того, как я запустил его, dist/public/fonts не существует. Почему нет?

+0

'/ public/bower_components/bootstrap/dist/fonts/*' - почему это абсолютный путь. Это должен быть относительный путь, и он может не начинаться с косой черты. –

+0

@MadhavanKumar Извините, это была опечатка, когда я писал этот пост! Я отредактировал его. – rublex

+0

Где вы управляете этим? И правильно ли я предполагаю, что из этого каталога у вас есть 'public' dir и' dist/public' dir? –

ответ

5

Я не совсем понимаю пути, которые вы src -ing (public/bower_components?), Но я считаю, что вы захотите использовать base option for gulp.src.

Поскольку эти два глобуса будут иметь разные базы, я предлагаю разбить его на две отдельные задачи и построить третью, чтобы объединить их в один. В противном случае вам нужно будет объединить потоки или плагин addSrc.

gulp.task('copy:fonts:bootstrap', function() { 
    return gulp.src(
     [ 
      'public/bower_components/bootstrap/dist/fonts/**/*' 
     ], 
     { 
      base: 'public/bower_components/bootstrap/dist/fonts' 
     } 
    ) 
     .pipe(gulp.dest('dist/public/fonts')); 
}); 

gulp.task('copy:fonts:fontawesome', function() { 
    return gulp.src(
     [ 
      'public/bower_components/font-awesome/fonts/**/*' 
     ], 
     { 
      base: 'public/bower_components/font-awesome/fonts' 
     } 
    ) 
     .pipe(gulp.dest('dist/public/fonts')); 
}); 

gulp.task('copy:fonts', ['copy:fonts:bootstrap', 'copy:fonts:fontawesome']); 
3

Согласно this article, укажите ваш SRC так:

gulp.src(['src/js/**/*.js'], { base: 'src' }) 
    .pipe(foo()) 
    .pipe(gulp.dest("./public/")); 

, и он будет автоматически создавать каталоги назначения для вас. В этом случае папка «js» будет создана публично, если она уже не существует.

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