我一点击save,gulp-babel就完成了任务,并在终端中打印了消息。但代码不会在浏览器中更新。我有一家当地的Nginx餐厅为我提供狼吞虎咽的文件。我必须重新加载多次才能获得更新的代码。
我的吞咽文件:
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默认是我运行的。
然而,如果没有吞咽babel(用于ES5),它可以正常工作。我只需要在浏览器中重新加载一次就可以获得更新的代码。我尝试过硬刷新,甚至在Chrome中启用了"在devtools打开时禁用缓存"选项,但没有成功。
这可能是什么原因?
您需要在gulp.src
之前添加return
,以便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'));
});