我从一口气开始,我没有得到任何错误,但似乎gulp.watch不工作。
服务器启动并编译,但不刷新更改
我评论一些线来简化任务
节点版本:4.4.7
CLI版本1.2.2
本地版本3.9.1
操作系统:Win7
我的 gulpfile .js
'use strict';
var gulp = require('gulp');
var less = require('gulp-less');
var browserSync = require('browser-sync').create();
var jade = require('gulp-jade');
var concat = require('gulp-concat');
gulp.task('less', function() {
return gulp.src("./des/less/estilos.less")
.pipe(less())
.pipe(gulp.dest("./prod/css/"))
.pipe(browserSync.stream());
});
gulp.task('less:watch', function () {
gulp.watch('./des/less/*.less', ['less']);
});
gulp.task('templates', function() {
gulp.src('./des/jades/*.jade')
.pipe(jade({
pretty: true
}))
.pipe(gulp.dest('./prod'))
.pipe(browserSync.stream());
});
gulp.task('scripts', function() {
//return gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js'])
return gulp.src('./des/js/*.js')
.pipe(concat('all.js'))
.pipe(gulp.dest('./prod/js/'))
.pipe(browserSync.stream());
});
gulp.task('serve', ['less','templates'], function() {
browserSync.init({
server: "./prod",
port: 3000,
browser: ["chrome", "firefox"],
watchOptions : {
ignored : 'node_modules/*',
ignoreInitial : true
}
});
gulp.task('watch', function() {
gulp.watch(["./des/jades/*.jade"], ['templates']);
// gulp.watch("./**/*.less", ['less']);
// gulp.watch("./**/*.js", ['scripts']);
// gulp.watch("./**/*.css").on('change', browserSync.reload);
gulp.watch("./prod/*.html").on('change', browserSync.reload);
// gulp.watch("./**/*.js").on('change', browserSync.reload);
});
});
// gulp.task('default', ['less','lessPublic','lessCommon','templates','serve']);
gulp.task('default', ['less','templates', 'scripts', 'serve']);
感谢您的帮助
答案 0 :(得分:0)
您的问题是您的var browserSync指向“browser-sync”的创建对象,并且将“stream”对象链接到它将无法工作,因为它不是创建对象的实例。
你应该改变
var browserSync = require('browser-sync').create();
到
var browserSync = require('browser-sync');
有了它,它应该适用于browserSync
browserSync.init();
browserSync.create();
browserSync.stream();