2015-05-20 148 views
9

当我缩小我的CSS,我留下了一个不正确的路径来自各种库的字体。所以,我创建了一个任务,从我bower_components/文件夹中的字体移动到dist/public/fontsGulp不会创建文件夹?

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

你在哪里运行?我是否认为从该目录中,你有一个“公共”目录和一个“dist/public”目录? –

回答

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”文件夹不存在,将在公共场所创建。