Gulp 附加到文件,而不是覆盖

标签 gulp gulp-concat

我正在尝试连接我的 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']);

最佳答案

您正在读取和写入同一目标目录。因此,首先读取文件 app.js,向其中添加一些内容,然后将结果写入 app.js,从而导致这种附加行为。您应该输出到与您正在读取的目录不同的目录。

关于Gulp 附加到文件,而不是覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30429561/

相关文章:

javascript - 大口订单 : not Ordering properly

css - 如何使用 gulp-live 服务器连接 server.notify 和 ['sass' ]?

javascript - TinyMCE gulp 配置

javascript - gulp 任务 - 连接由另一个 gulp 任务创建的文件

node.js - 如何调试 gulp-sourcemaps 什么都不做?

css - Gulp - 将多个 css 文件缩小为一个文件的最佳方式?

javascript - 如何给js和css文件添加版本号

javascript - 使用 Gulp 在外部制作 browserify 模块

javascript - 如何从 mocha.opts 文件中正确地要求模块