BrowserSync 不会自动刷新页面 gulp-jade
BrowserSync does not automatically refresh the page with gulp-jade
我最近使用 gulp 创建了一个工作区。一切正常(自动重新加载、sass 编译、缩小等)
您可以在 github
上查看代码
今天想给项目加玉。编译运行良好,但 browserSync 不会自动刷新页面
这是我的代码
'use strict'
var gulp = require('gulp')
var jade = require('gulp-jade')
var sass = require('gulp-sass')
var cssmin = require('gulp-cssmin')
var rename = require('gulp-rename')
var prefix = require('gulp-autoprefixer')
var uglify = require('gulp-uglify')
var concat = require('gulp-concat')
var imagemin = require('gulp-imagemin')
var browserSync = require('browser-sync').create()
// Compile Jade
gulp.task('jade', function () {
gulp.src('src/*.jade')
.pipe(jade({
pretty: true
}))
.pipe(gulp.dest('./dist'))
})
// Configure CSS tasks.
gulp.task('sass', function () {
gulp.src('src/scss/**/*.scss')
.pipe(sass.sync().on('error', sass.logError))
.pipe(prefix('last 2 versions'))
.pipe(cssmin())
.pipe(concat('styles.css'))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest('dist/css'))
.pipe(browserSync.stream())
})
// Configure JS.
gulp.task('js', function () {
gulp.src('src/js/**/*.js')
.pipe(uglify())
.pipe(concat('app.js'))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest('dist/js'))
.pipe(browserSync.stream())
})
// Configure image stuff.
gulp.task('images', function () {
gulp.src('src/img/**/*.+(png|jpg|gif|svg)')
.pipe(imagemin())
.pipe(gulp.dest('dist/img'))
.pipe(browserSync.stream())
})
gulp.task('default', ['jade', 'sass', 'js', 'images'], function () {
browserSync.init({
server: './dist'
})
gulp.watch('src/*.jade', ['jade'])
gulp.watch('src/scss/**/*.scss', ['sass'])
gulp.watch('src/js/**/*.js', ['js'])
gulp.watch('./dist/*.html').on('change', browserSync.reload)
})
我测试了代码,发现了错误。
Browsersync 被注入到 <head>
元素中,因此您需要在页面上拥有该元素(拥有 html/head/body 仍然很好)。
实施我的评论建议(关于缺少 browserSync.stream())并将您的玉文件修复为:
html
head
body
h1 hello Jade
ul
li comment ça va
li et toi ?
.box salut comment tu vas ?
问题解决。 BrowserSync 现在可以正确地插入到页面中 :)
我最近使用 gulp 创建了一个工作区。一切正常(自动重新加载、sass 编译、缩小等) 您可以在 github
上查看代码今天想给项目加玉。编译运行良好,但 browserSync 不会自动刷新页面
这是我的代码
'use strict'
var gulp = require('gulp')
var jade = require('gulp-jade')
var sass = require('gulp-sass')
var cssmin = require('gulp-cssmin')
var rename = require('gulp-rename')
var prefix = require('gulp-autoprefixer')
var uglify = require('gulp-uglify')
var concat = require('gulp-concat')
var imagemin = require('gulp-imagemin')
var browserSync = require('browser-sync').create()
// Compile Jade
gulp.task('jade', function () {
gulp.src('src/*.jade')
.pipe(jade({
pretty: true
}))
.pipe(gulp.dest('./dist'))
})
// Configure CSS tasks.
gulp.task('sass', function () {
gulp.src('src/scss/**/*.scss')
.pipe(sass.sync().on('error', sass.logError))
.pipe(prefix('last 2 versions'))
.pipe(cssmin())
.pipe(concat('styles.css'))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest('dist/css'))
.pipe(browserSync.stream())
})
// Configure JS.
gulp.task('js', function () {
gulp.src('src/js/**/*.js')
.pipe(uglify())
.pipe(concat('app.js'))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest('dist/js'))
.pipe(browserSync.stream())
})
// Configure image stuff.
gulp.task('images', function () {
gulp.src('src/img/**/*.+(png|jpg|gif|svg)')
.pipe(imagemin())
.pipe(gulp.dest('dist/img'))
.pipe(browserSync.stream())
})
gulp.task('default', ['jade', 'sass', 'js', 'images'], function () {
browserSync.init({
server: './dist'
})
gulp.watch('src/*.jade', ['jade'])
gulp.watch('src/scss/**/*.scss', ['sass'])
gulp.watch('src/js/**/*.js', ['js'])
gulp.watch('./dist/*.html').on('change', browserSync.reload)
})
我测试了代码,发现了错误。
Browsersync 被注入到 <head>
元素中,因此您需要在页面上拥有该元素(拥有 html/head/body 仍然很好)。
实施我的评论建议(关于缺少 browserSync.stream())并将您的玉文件修复为:
html
head
body
h1 hello Jade
ul
li comment ça va
li et toi ?
.box salut comment tu vas ?
问题解决。 BrowserSync 现在可以正确地插入到页面中 :)