2015-05-20 18 views
9

Khi tôi rút gọn css của mình, tôi bị bỏ sót với một đường dẫn không chính xác đến các phông chữ từ các thư viện khác nhau. Vì vậy, tôi đã tạo ra một nhiệm vụ để di chuyển phông chữ từ thư mục bower_components/ tôi để dist/public/fonts:Gulp không tạo thư mục?

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

Về cơ bản đó nên ném bất kỳ phông chữ tôi cần vào một thư mục phông chữ chung chung, mà css minified của tôi bây giờ sẽ có thể truy cập.

Nhưng sau khi tôi chạy, dist/public/fonts không tồn tại. Tại sao không?

+0

'/ public/bower_components/bootstrap/dist/fonts/*' - tại sao đây là đường dẫn tuyệt đối. Đây phải là một đường dẫn tương đối và nó có thể không bắt đầu bằng dấu gạch chéo. –

+0

@MadhavanKumar Xin lỗi, đó là lỗi đánh máy khi tôi viết bài này! Tôi đã chỉnh sửa nó. – rublex

+0

Bạn đang chạy cái này ở đâu? Và tôi có thể giả định rằng từ thư mục đó, bạn có một thư mục 'public' và một thư mục' dist/public'? –

Trả lời

5

Tôi không hiểu đầy đủ các đường dẫn bạn đang src -ing (public/bower_components?), Nhưng tôi tin rằng bạn sẽ muốn sử dụng base option for gulp.src.

Bởi vì hai bóng này sẽ có các căn cứ khác nhau, tôi khuyên bạn nên chia thành hai tác vụ riêng biệt và xây dựng một phần ba để tổng hợp chúng thành một đĩa đơn. Nếu không, bạn sẽ cần phải tham gia vào các luồng hợp nhất hoặc plugin 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

Theo this article, xác định src của bạn như thế này:

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

và nó sẽ tự động tạo ra các thư mục đích đến cho bạn. Trong trường hợp này, thư mục 'js' sẽ được tạo ra ở nơi công cộng nếu nó không tồn tại.

Các vấn đề liên quan