Gulp babel完成但代码未更新

时间:2015-10-30 06:50:24

标签: javascript gulp babeljs gulp-watch gulp-concat

一旦我点击保存,gulp babel就会在终端上打印消息完成任务。但是代码不会在浏览器中更新。我有一个本地Nginx服务我的gulped文件。我必须多次重新加载才能获得更新的代码。

我的gulp文件:

gulp.task('js', function () {
    gulp.src([
        'src/app.js',
        'src/app.controller.js',
        'src/**/*.js',
        'libs/*.js'
    ])
        .pipe(sourcemaps.init())
        .pipe(babel())
        .pipe(concat()('app.js'))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('dist'));
});

//other tasks here (css, assets etc)
...

gulp.task('watch', function () {
    gulp.watch('src/**/*.js', ['js']);
    gulp.watch([
        'src/**/*.html',
        'src/images/**/*',
        'src/fonts/**/*',
        'src/**/*.json'], ['assets']);
    gulp.watch('src/**/*.scss', ['sass']);
});
gulp.task('default', ['js', 'sass', 'assets', 'watch']);

Gulp默认是我跑的。

然而,没有gulp-babel(对于ES5)它可以正常工作。我必须在浏览器中重新加载一次才能获得更新的代码。我尝试了硬刷新,甚至在devtools打开时启用了"禁用缓存" Chrome中的选项,但没有运气。

这可能是什么原因?

1 个答案:

答案 0 :(得分:1)

您需要在return之前添加gulp.src,以便Gulp知道任务何时完成

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