【问题标题】:BrowserSync and Gulp. Can't get reload to work for JS/HTMLBrowserSync 和 Gulp。无法重新加载以适用于 JS/HTML
【发布时间】:2015-06-06 13:08:24
【问题描述】:

我刚刚开始使用 Gulp。我的gulpfile.js 如下:

// require gulp
var gulp = require('gulp');

// include gulp plugins
var concat = require('gulp-concat');
var sass   = require('gulp-ruby-sass');
var brsync = require('browser-sync').create();

// make one js file
gulp.task('scripts', function() {
    return gulp.src('src/app/js/*.js')
        .pipe(concat('main.js'))
        .pipe(gulp.dest('build/js/'));
});

// turn scripts into one file and reload browser
gulp.task('scripts-watch', ['scripts'], brsync.reload());

// convert sass to css
gulp.task('sass', function() {
    return sass('src/app/scss/main.scss', {style: 'expanded'})
        .on('error', function(err) {
            console.error('something went wrong with sass processing!', err.message);
        })
        .pipe(gulp.dest('build/css'))
        .pipe(brsync.stream());
});

// copy over index file to build directory
gulp.task('html', function() {
    return gulp.src('src/app/index.html')
            .pipe(gulp.dest('build/'));
});

// reload browser when html in src changes
gulp.task('html-watch', ['html'], brsync.reload());

gulp.task('serve',['scripts', 'sass', 'html'], function() {
    brsync.init({
        server: "./build"
    });

    gulp.watch('src/app/js/*.js', ['scripts-watch']);
    gulp.watch('src/app/index.html', ['html-watch']);
    gulp.watch('src/app/scss/*.scss', ['sass']);
});

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

我只是按照 BrowserSync 网站here 上列出的方法进行操作。但这对我不起作用。当我更改 JS 文件时,我的脚本确实会更新,但浏览器没有重新加载!

【问题讨论】:

    标签: javascript gulp browser-sync


    【解决方案1】:

    尝试使用代理:

    gulp.task('serve',['scripts', 'sass', 'html'], function() {
      browserSync.init(null, {
        proxy: "http://localhost:3000",
          files: ['src/app/**/*'],
          browser: "google chrome",
          port: 7000
      });
    
      gulp.watch('src/app/js/*.js', ['scripts-watch']);
      gulp.watch('src/app/index.html', ['html-watch']);
      gulp.watch('src/app/scss/*.scss', ['sass']);
    });
    
    gulp.task('default', ['serve']);
    

    我也使用var browserSync = require('browser-sync'); 而不是var browserSync = require('browser-sync').create();

    【讨论】:

    • 我像你上面那样改变了它,但现在我只是得到一个永远不会加载的白屏! ://
    猜你喜欢
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多