为什么乙烯基file.contents在gulp watch期间无法更新?

时间:2017-05-05 09:32:17

标签: javascript node.js gulp gulp-watch

我想通过gulp(-watch)运行文件流,并使用'map-stream'更改每个文件的内容。如果我自己运行任务gulp js,代码工作正常。如果我gulp watch文件,它总是保存一些与我试图写入file.contents的缓冲区无关的文件的旧版本。为什么呢?

我的设置如下:

const gulp = require('gulp'),
      map = require('map-stream');

gulp.task('js-change-files', (done) => {
componentConfig = [];
gulp.src('src/**/*.js')
    .pipe(map(function (file, done) {
        file.contents = new Buffer.from(''+Math.random());
        done(null, file);
    }))
    .pipe(gulp.dest('dist/'))
    .on('end', done);
});

我有另一项任务等待第一项任务,以防万一:

gulp.task('js', ['js-change-files'], () => {
gulp.src('src/app.js')
    // Do something with app.js
    .pipe(gulp.dest('dist/'))
});

观看任务:

gulp.task('watch', () => {
    gulp.watch('src/**/*.js', ['js']);
});

我已将问题缩小到将缓冲区保存到file.contents,因为缓冲区会按预期产生新的随机数。但我无法弄清楚这里有什么干扰或者文件的旧版本来自哪里。

0 个答案:

没有答案