gpt4 book ai didi

node.js - Gulp 在 Node app.listen() 被调用或移植时观察(livereload、nodejs 和 gulp)

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:00 25 4
gpt4 key购买 nike

我正在尝试让 gulp-livereload 与我的 nodejs 服务器一起工作。我正在使用 gulp-nodemon 在更改文件后重新启动服务器,这有效。我在正确的时间调用 livereload.reload() 时遇到问题。

我目前正在 gulpfile.js 中的 .on('start'... 上调用 livereload.reload() (每当我的 nodemon 启动脚本时)。这有效,但需要几秒钟。原因是当 nodemon 开始运行 nodejs 脚本时,它调用 livereload.listen() before脚本调用了 app.listen(port),因此我的浏览器在服务器未准备就绪的情况下刷新。

有没有办法监听 nodejs nodemon 脚本是否调用了 app.listen(port) 或者监听是否正在使用特定端口?

我已经通过小睡解决了这个问题,但感觉很不对劲和肮脏。

最佳答案

使用可读事件监控子进程的stdout。

例子:

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);
});

应用程序.js

app.listen(3000, function(err) {
console.log('koa server listening');
});

关于node.js - Gulp 在 Node app.listen() 被调用或移植时观察(livereload、nodejs 和 gulp),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29217978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com