2016-10-25 100 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