2014-08-28 17 views
11

Tôi đang tìm cách đưa tệp vào gulp chỉ khi nó tồn tại, khi tôi biên dịch, để phát triển. Hiện tại tôi có các thông tin sau:Chỉ bao gồm nếu tồn tại

gulp.task('compile:js:development', function() { 
    return gulp.src([ 
    'src/js/**/*.js', 
    ]).pipe(concat('dist.js')) 
    .pipe(gulp.dest('compiled/js/')) 
}); 

Tôi cần phải thêm tệp khác vào mảng này, nhưng chỉ khi tệp đó tồn tại. Tôi đã thấy gulp-if Nhưng tôi không nghĩ rằng có khả năng tôi đang tìm kiếm.

Tôi cũng muốn cảnh báo cho nhà phát triển rằng tệp này không tồn tại, khi biên soạn để phát triển trong bảng điều khiển.

Trả lời

16

Gulp chỉ là một ứng dụng nút, vì vậy bạn có thể sử dụng bất kỳ chức năng nút nào trong tệp gulpfile của mình. Bạn có thể dễ dàng kiểm tra sự tồn tại của một tập tin sử dụng fs.exists()

gulp.task('compile:js:development', function() { 
    var fs = require('fs'), 
     files = ['src/js/**/*.js'], 
     extraFile = 'path/to/other/file'; 

    if (fs.existsSync(extraFile)) { 
    files.push(extraFile); 
    } else { 
    console.log('FILE DOES NOT EXIST'); 
    } 

    return gulp.src(files) 
    .pipe(concat('dist.js')) 
    .pipe(gulp.dest('compiled/js/')) 
}); 
+0

bạn có thể cung cấp một ví dụ về cách thức người ta sẽ sử dụng điều này trong một nhiệm vụ ngụm để biên dịch js? – user3379926

+1

chắc chắn, câu trả lời đã chỉnh sửa. –

+1

Các tùy chọn đầu tiên trong 'gulp.src' có thể là một tập tin' String' hoặc 'Array' và không tồn tại được bỏ qua, vì vậy tôi nghĩ rằng điều này có thể được đơn giản hóa thành' gulp.src (['src/js/** /*.js ',' path/to/other/file ']) ' –

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