2017-04-13 5 views
0

免責事項を使用してCONCAT。ここに私が持っている問題を示すgulpファイルがあります。ガルプは、古いファイル情報に

var gulp = require('gulp'); 
var concat = require('gulp-concat'); 

gulp.task('task1', function() { 
    gulp.src(['file1.txt', 'file2.txt', 'task2-output.txt', 'file3.txt']) 
     .pipe(concat('output.txt')) 
     .pipe(gulp.dest('.')) 
}); 

gulp.task('task2', function() { 
    gulp.src('task2-input.txt') 
     .pipe(concat('task2-output.txt')) 
     .pipe(gulp.dest('.')) 
}); 

gulp.task('default', ['task2', 'task1']); 

"タスク1" の順にFILE1.TXT、FILE2.TXT、タスク2-output.txtと、およびfile3.txtを含むことになっています。問題は、task2-output.txtが適切に組み込まれていないことです。 gulpコマンドの実行時に表示されるように、task1にはtask2-output.txtの内容が含まれているようです。 gulpが開始されたときにtask2-output.txtが見つからない場合は、省略されています。 task2-input.txtが変更された場合、task2-output.txtはtask2によって変更されますが、古いバージョンはoutput.txtに含まれます

特にgulp task2とgulp task1をこの順序で別々に実行すると正常に動作します。それは私が失敗するデフォルトのタスクを実行するときです。ここで

は、サンプルセッションです:

C:\Users\Ken\htdocs\gulptest>type file1.txt 
File 1 
C:\Users\Ken\htdocs\gulptest>type file2.txt 
File 2 
C:\Users\Ken\htdocs\gulptest>type task2-input.txt 
Task 2 
C:\Users\Ken\htdocs\gulptest>type file3.txt 
File 3 
C:\Users\Ken\htdocs\gulptest>gulp 
[10:35:15] Using gulpfile ~\htdocs\gulptest\gulpfile.js 
[10:35:15] Starting 'task2'... 
[10:35:15] Finished 'task2' after 7.76 ms 
[10:35:15] Starting 'task1'... 
[10:35:15] Finished 'task1' after 3.67 ms 
[10:35:15] Starting 'default'... 
[10:35:15] Finished 'default' after 15 μs 

C:\Users\Ken\htdocs\gulptest>type output.txt 
File 1 
File 2 
File 3 
+0

してみてください。戻りgulp.src ..... – Mark

+0

はほとんどそれを固定return文を追加します。タスク2の依存関係としてtask2を追加する必要もありました。私は答えを投稿します。あなたの提案をありがとう! –

+0

助けてくれてうれしいです。今はあなたのデフォルトタスクでtask2コールが必要ではないと思います。 – Mark

答えて

1

マルココメントは実用的なソリューションに私を導きました。それぞれのタスクにreturn文を追加し、task2をtask1の依存関係として追加する必要がありました。 return文だけを追加してもそれを修正することはできませんでした。また、タスクの依存関係だけを追加することもありませんでした。両方の変更が必要でした。ここに実際の解決策があります。たalaあなたのタスクにreturn文を追加する

var gulp = require('gulp'); 
var concat = require('gulp-concat'); 

gulp.task('task1', ['task2'], function() { 
    return gulp.src(['file1.txt', 'file2.txt', 'task2-output.txt', 'file3.txt']) 
     .pipe(concat('output.txt')) 
     .pipe(gulp.dest('.')) 
}); 

gulp.task('task2', function() { 
    return gulp.src('task2-input.txt') 
     .pipe(concat('task2-output.txt')) 
     .pipe(gulp.dest('.')) 
}); 

gulp.task('default', ['task2', 'task1']); 
+0

これは私のためにもうまくいきました。 – Joren

関連する問題