2016-10-25 8 views
3

私はへの責任を一気タスクを作成しようとしている編集:previouly 2.コピーし、いくつかのフォルダに新しいdistのフォルダ内 3.編集distの内部iniファイル作成 1.クリーンdistのフォルダをキーガルプ:distのフォルダを用意し、iniファイル

var destination = './dist/test/v2'; 

// Copy ini file to dist folder 
gulp.task('prepareDelivery', function() { 
    gulp.src([source + '/ini/app_sample.ini']).pipe(gulp.dest(destination + '/ini/')); 
}); 

// update version in ini file 
gulp.task('prepareAppIni', ['prepareDelivery'], function() { 
    var config = ini.parse(fs.readFileSync(destination + '/ini/app_sample.ini', 'utf-8')) 
    config.DATA.version = '1.0' 
    fs.writeFileSync(destination + '/ini/app.ini', ini.stringify(config, { section: 'section' })) 
}); 

// default task 
gulp.task('default', ['clean', 'prepareDelivery', 'prepareAppIni']); 

を更新するためのフォルダ、私はこのエラーを取得する:

Error: ENOENT: no such file or directory, open './dist/test/v2/ini/app_sample.ini' 

私はprepareAppIniタスクを実行する前にprepareDeliveryタスクが終了したことをお待ちしておりますので、私は、理由を理解していない...

お手伝いできますか?

答えて

6

私はprepareDeliveryタスクが正しくありません

前に終了していることをお待ちしておりますので、私は、理由を理解していません。 defaultタスクに複数の依存関係(clean,prepareDelivery,prepareAppIni)があり、それらはすべて同時に開始します。

ほとんどの場合、prepareAppIniprepareDeliveryに依存します。これは、順番に、cleanタスクに依存する必要があります。 defaultprepareAppIniのみに依存する必要があり、これが実現した。また

gulp.task('default', ['prepareAppIni']); 

、あなたはprepareDeliveryreturnが欠落しているので、それが完了すると、一口にはわかりません。

// Copy ini file to dist folder 
gulp.task('prepareDelivery', function() { 
    return gulp.src([source + '/ini/app_sample.ini']).pipe(gulp.dest(destination + '/ini/')); 
}); 
+0

お返事ありがとうございます。私はあなたの提供された行と私のデフォルトのタスクを更新するtuを試みますが、私はまだ同じエラーを取得..あなたは別のアイデアを持っている? – wawanopoulos

+0

@wawanopoulos私はあなたが 'prepareDelivery'で' return'していないことに気づいたので、gulpはいつ終了するのか分かりません。 'return gulp.src([source + '/ini/app_sample.ini'])... 'を試してください。 –

+0

ありがとう、私はreturn文を見逃しました... – wawanopoulos

関連する問題