Gulp 用于观察何时调用节点 app.listen() 或进行移植(livereload、nodejs 和 gulp)

2023-12-27

我想得到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(使用前将#替换为@)

Gulp 用于观察何时调用节点 app.listen() 或进行移植(livereload、nodejs 和 gulp) 的相关文章

随机推荐