在查找大量相关问题后,我找不到符合我需求的正确答案。
所以我正在运行一台Express服务器,我想使用Gulp自动完成一些任务 这是非常基本的,因为我需要的是重新启动服务器(使用Gulp-nodemon),然后在文件更改时重新加载浏览器(使用Browser-sync进行跨浏览器和多设备调试)。
当我运行gulp start
命令时,服务器启动,Browser-sync也会启动,这会正确打开我的页面。
但是,在文件更改时,nodemon正在重新启动服务器,但浏览器同步的重新加载不会触发。然后,我需要手动刷新页面以查看更改...
这是我的gulpfile:
//Some requires
gulp.task('css', function () {
gulp.src('stylus/main.styl')
.pipe(stylus({compress: false, paths: ['stylus']}))
.pipe(autoprefixer())
.pipe(minifyCSS())
.pipe(rename('style.css'))
.pipe(gulp.dest('public/styles'));
});
gulp.task('sync', ['nodemon'], function() {
browserSync.init({
proxy: 'http://localhost:3000',// Don't use proxy
port: 4000, // Desired PORT address.
open: true,
notify: true,
logConnections: true,
reloadDelay: 1000
});
});
gulp.task('nodemon', function (cb) {
var started = false;
return nodemon({
script: 'index.js',
tasks: ['css'],
ext: 'js ejs styl',
env: { 'NODE_ENV': 'development' }
}).on('start', function() {
if (!started) {
cb();
started = true;
browserSync.reload();
}
}).on('restart', function() {
});
});
gulp.task('start', ['sync']);
我有什么遗漏吗?
我看到关于这一点有很多问题,但每个人似乎都在不同的阶段遇到问题......