Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览器同步(在gulp下)不';刷新浏览器_Javascript_Gulp_Gulp Watch_Gulp Livereload_Browser Sync - Fatal编程技术网

Javascript 浏览器同步(在gulp下)不';刷新浏览器

Javascript 浏览器同步(在gulp下)不';刷新浏览器,javascript,gulp,gulp-watch,gulp-livereload,browser-sync,Javascript,Gulp,Gulp Watch,Gulp Livereload,Browser Sync,我的配置完成了它应该做的一切,但它从不刷新浏览器。一旦我手动刷新它,就会有更改。我正在连接到默认的localhost:3000。你知道为什么会这样,或者如何调试它吗 gulpfile.js: var gulp = require('gulp'); var sass = require('gulp-sass'); var sourcemaps = require('gulp-sourcemaps'); var browserSync = require('browser-sync'); gulp

我的配置完成了它应该做的一切,但它从不刷新浏览器。一旦我手动刷新它,就会有更改。我正在连接到默认的localhost:3000。你知道为什么会这样,或者如何调试它吗

gulpfile.js:

var gulp = require('gulp');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
var browserSync = require('browser-sync');

gulp.task('html', function () {
    browserSync.reload();
});

gulp.task('sass', function() {
  return gulp.src('./app/scss/style.scss')
    .pipe(sass())
    .pipe(gulp.dest('./app/css'))
    .pipe(browserSync.reload({ stream:true }));
});

gulp.task('serve', function() {
  browserSync({
    server: {
      baseDir: 'app'
    }
  });
});

gulp.task('default', ['serve'], function () {
    gulp.watch('./app/scss/*.scss', ['sass', browserSync.reload]);
    gulp.watch('./app/*.html', ['html', browserSync.reload]);

});
控制台输出的示例:

[BS] Local URL: http://localhost:3000
[BS] External URL: http://192.168.1.3:3000
[BS] Serving files from: app
[17:10:32] Starting 'html'...
[BS] Reloading Browsers...
[17:10:32] Finished 'html' after 829 μs
[BS] Reloading Browsers...
[17:10:42] Starting 'sass'...
[BS] 1 file changed (style.css)
[17:10:42] Finished 'sass' after 22 ms
[BS] Reloading Browsers...
[17:11:02] Starting 'html'...
[BS] Reloading Browsers...
[17:11:02] Finished 'html' after 472 μs
[BS] Reloading Browsers...

我发现:浏览器同步不喜欢隐式html标记,所以这(尽管有效的HTML5)不起作用:

<!doctype html>
<title>implicit</title>

含蓄的
但这将:

<!doctype html>
<html>
    <head>  
        <title>full doc</title>
    </head>
    <body></body>
</html>

正式文件

实际上,它只需要body标签(以及有文档记录的行为)这就是我想要的答案。然而,我似乎在BrowserSync的文档中找不到这一点。或者这是一个吞咽的东西?应该在主文档中,但这里提到了,即使我刚开始使用浏览器同步时也遇到了类似的问题,命令行说“重新加载浏览器”,但浏览器根本没有刷新,问题是我没有在html页面中包含body标记,浏览器同步可以在其中插入脚本以实现其功能,请确保您的html页面具有body标记。