javascript – Gulp:准备dist文件夹并编辑ini文件

我正在尝试创建一个负责的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/'));
});
上一篇:javascript – 使用Gulp将资产上传到s3


下一篇:jshint在gulp中的使用