2016-10-25 67 views
3

我想創建負責一飲而盡任務:創建previouly 2. 複製一些文件夾內的新文件夾DIST 3. 裏面編輯一個DIST ini文件 1.清潔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您的default任務有多個依賴關係(clean,prepareDelivery,prepareAppIni),並且它們都在同一時間開始。

最有可能你想要prepareAppIni取決於prepareDelivery。而這又取決於clean任務。有了這個實施,default應該prepareAppIni只取決於:

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

感謝您的回覆。我嘗試用您提供的線更新我的默認任務,但我仍然得到相同的錯誤..你有另一個想法? – wawanopoulos

+0

@wawanopoulos我剛剛注意到你在'prepareDelivery'中不''return',所以吞下不知道什麼時候結束。請嘗試'return gulp.src([source +'/ini/app_sample.ini'])...' –

+0

非常感謝,我錯過了返回聲明... – wawanopoulos