我想得到gulp-livereload
与我的 Nodejs 服务器一起使用。我在用gulp-nodemon
更改文件后重新启动服务器,这有效。我调用时遇到问题livereload.reload()
在正确的时间。
我目前正在调用livereload.reload()
on the .on('start'...
in my gulpfile.js
(每当我的nodemon启动脚本时)。这可行,但需要几秒钟。原因是当nodemon开始运行它调用的nodejs脚本时livereload.listen()
before该脚本已调用app.listen(port)
,所以我的浏览器在服务器尚未准备好时刷新。
有没有办法监听nodejs的nodemon脚本是否已调用app.listen(port)
或者也许听听特定端口是否正在被使用?
我已经通过小睡解决了这个问题,但感觉非常错误和肮脏。
使用可读事件来监视子进程的标准输出。
example:
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);
});
app.js
app.listen(3000, function(err) {
console.log('koa server listening');
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)