Gulp добавление файлов, а не перезапись

Я пытаюсь объединить мои JS-файлы и запустить их через Babel для нового проекта, но вместо перезаписи целевого файла при каждом запуске задачи мой gulpfile только добавляет изменения в файл. Таким образом, мой файл назначения выглядит следующим образом:

console.log('hello');

//# sourceMappingURL=app.js.map
console.log('goodbye');

//# sourceMappingURL=app.js.map

что я упустил? Ниже мой gulpfile.

спасибо заранее.

var gulp        = require('gulp');
var sourcemaps  = require("gulp-sourcemaps");
var uglify      = require('gulp-uglify');
var rename      = require('gulp-rename');
var concat      = require('gulp-concat');
var babel       = require('gulp-babel');    
var browserSync = require('browser-sync').create();
var reload      = browserSync.reload;

gulp.task('js', function(){
  return gulp.src("./app/js/*.js")
    .pipe(sourcemaps.init())
    .pipe(concat("app.js"))
    .pipe(babel())
    .pipe(sourcemaps.write("."))
    .pipe(gulp.dest("./app/js/"));  
});

gulp.task('js-reload', ['js'], reload);

gulp.task('serve', ['js'], function() {
    browserSync.init({
        server: "./app"
    });
    gulp.watch("./app/js/*.js").on('change', ['js-reload']);
    gulp.watch("./app/*.html").on('change', reload);
});

gulp.task('default', ['js', 'serve']);

1 ответов


Вы читаете и пишете в один и тот же каталог назначения. Поэтому приложение file.js сначала читается, некоторые вещи добавляются к нему, а затем результат записывается в приложение.js, вызывая это добавочное поведение. Вы должны выводить в другой каталог, чем Вы читаете из.