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

时间:2016-10-25 09:53:59

标签: javascript node.js gulp

我正在尝试创建一个负责的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任务之前终止...

你能帮帮我吗?

1 个答案:

答案 0 :(得分:6)

  

我不明白为什么,因为我在等待prepareDelivery任务在

之前终止

这不正确。 您的default任务有多个依赖项(cleanprepareDeliveryprepareAppIni),所有这些依赖项都会同时启动。

您最有可能希望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/'));
});