我正在尝试创建一个负责的gulp任务:
1.干净的dist文件夹预先创建
2.复制新dist文件夹中的一些文件夹
3.编辑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'
我不明白为什么,因为我等待prepareDelivery任务在执行prepareAppIni任务之前终止…
你可以帮帮我吗 ?
解决方法:
I don’t understand why, because i am waiting that prepareDelivery task is terminated before
那不对.
您的默认任务有多个依赖项(clean,prepareDelivery,prepareAppIni),并且所有这些依赖项都是同时启动的.
您最有可能希望prepareAppIni依赖prepareDelivery.反过来,这应该取决于干净的任务.实现此功能后,默认值应仅依赖于prepareAppIni:
gulp.task('default', ['prepareAppIni']);
此外,您在prepareDelivery中缺少返回,因此gulp不知道它何时完成.应该
// Copy ini file to dist folder
gulp.task('prepareDelivery', function () {
return gulp.src([source + '/ini/app_sample.ini']).pipe(gulp.dest(destination + '/ini/'));
});