Javascript 在服务器进程完成重新启动之前停止livereload重新加载
我正在配置gulpfile以查看目录中的文件更改,1)重新加载我的express服务器,2)发出livereload“更改”事件,以便我的浏览器(带有livereload chrome扩展)将重新加载我正在开发的页面 这是我的gulpfile:Javascript 在服务器进程完成重新启动之前停止livereload重新加载,javascript,gulp,livereload,nodemon,Javascript,Gulp,Livereload,Nodemon,我正在配置gulpfile以查看目录中的文件更改,1)重新加载我的express服务器,2)发出livereload“更改”事件,以便我的浏览器(带有livereload chrome扩展)将重新加载我正在开发的页面 这是我的gulpfile: var gulp = require('gulp') , nodemon = require('gulp-nodemon') , livereload = require('gulp-livereload'); gulp.task('start
var gulp = require('gulp')
, nodemon = require('gulp-nodemon')
, livereload = require('gulp-livereload');
gulp.task('startReloadServer', function() {
livereload.listen();
});
gulp.task('demon', function () {
nodemon({
script: 'server.js',
ext: 'js html',
env: {
'NODE_ENV': 'development'
}
})
.on('start', ['startReloadServer'])
.on('restart', function () {
console.log('restarted!');
livereload.changed();
});
});
gulp.task('default', ['demon']);
但是,当我更改一个视图(.html)文件时,我的浏览器会在节点服务器进程恢复联机之前重新加载页面:
在nodemon准备好接收请求后,如何更改gulpfile以发出livereload.changed()事件?我也遇到了这个问题。我能想到的最好办法是将对
livereload.changed()
的调用延迟一秒钟
nodemon.on('restart',function()){
setTimeout(livereload.changed,1000);
});
文档:我发现了类似的问题,然后写下我的解决方案。
nodemon({script: 'app.js',
nodeArgs: ['--harmony'],
stdout: false})
.on('readable', function(data) {
this.stdout.on('data', function(chunk) {
if (/koa server listening/.test(chunk)) {
console.log('livereload');
livereload.reload();
}
process.stdout.write(chunk);
});
this.stderr.pipe(process.stderr);
});