我正在尝试创建一个负责的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任务之前终止...
你能帮帮我吗?
答案 0 :(得分:6)
我不明白为什么,因为我在等待prepareDelivery任务在
之前终止
这不正确。
您的default
任务有多个依赖项(clean
,prepareDelivery
,prepareAppIni
),所有这些依赖项都会同时启动。
您最有可能希望prepareAppIni
依赖prepareDelivery
。反过来,这应该取决于clean
任务。完成此操作后,default
应仅依赖于prepareAppIni
:
gulp.task('default', ['prepareAppIni']);
此外,您在return
中缺少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/'));
});