我想通过gulp
+browserSync
结合来启动express应用并且监听静态资源变化自动修改,gulpfile相关人物如下:
gulp.task('sass', () => {
gulp.src('./public/sass/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer())
.pipe(gulp.dest('./public/stylesheets'))
.pipe(browserSync.stream());
});
gulp.task('server', ['nodemon'], () => {
browserSync.init(null, {
proxy: "http://localhost:3000",
files: ['public/**/*.*'],
browser: "google chrome",
port: 4000
});
gulp.watch('./public/sass/*.scss', ['sass']);
});
gulp.task('nodemon', (cb) => {
let called = false;
return nodemon({
script: './app.js',
ext: 'ejs js',
ignore: ['public/**']
}).on('start', () => {
if(!called){
cb();
}
called = true;
}).on('restart', () => {
console.log("restart!");
});
});
gulp.task('default', ['server']);
但是sass改变之后,页面还是会刷新,我用一个html和一个css试了一下browserSync的效果是正常的,是不是对sass支持不大好?还是我的task有问题?
好吧,发布问题的瞬间发现确实是task写错了,让browserSync只监听编译后的css就可以了,总是在点击发布后的几秒钟才能发现错误。。。。