gulp任务等待express server启动的更好方法
需要gulp 4.0.2任务等待express 4.17.1服务器启动,然后打开浏览器 以下是我的作品(但我认为这是一种很古老的风格)gulp任务等待express server启动的更好方法,express,promise,gulp,Express,Promise,Gulp,需要gulp 4.0.2任务等待express 4.17.1服务器启动,然后打开浏览器 以下是我的作品(但我认为这是一种很古老的风格) 虽然这样做很好,但我想知道是否有更精简的方法来完成同样的事情。关于这个主题的最后一篇StackOverflow文章已经有3年多的历史了。你可以重写所有内容,以实现承诺,但区别主要在于语法。总体的投票模式大致相同。我知道,重写是不值得的,除非你选择投票以外的其他方式。不太确定那可能是什么。是吗?谢谢Roamer-1888。我想知道在监视发出的事件的基础上是否可以做
虽然这样做很好,但我想知道是否有更精简的方法来完成同样的事情。关于这个主题的最后一篇StackOverflow文章已经有3年多的历史了。你可以重写所有内容,以实现承诺,但区别主要在于语法。总体的投票模式大致相同。我知道,重写是不值得的,除非你选择投票以外的其他方式。不太确定那可能是什么。是吗?谢谢Roamer-1888。我想知道在监视发出的事件的基础上是否可以做些什么。
// Start server in development or test mode
gulp.task('start:server', () => {
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
config = require(`./${serverPath}/config/environment`).default;
nodemon(`--inspect --trace-deprecation --trace-warnings -w ${serverPath} ${serverPath}`)
.on('log', onServerLog);
});
// Run nodemon with debugging (server/config/express.js runs webpack.make.js)
gulp.task('serve',
gulp.series(
gulp.parallel('eslint', 'eslint:tests', 'client:inject:scss', 'dist:client:assets:fonts', 'env:common'),
gulp.parallel('start:server', 'start:client'),
'watch'
)
);
// Perform HTTP GET to check for app readiness
function checkAppReady(cb) {
let options = {
host: 'localhost',
port: config.port
};
http.get(options, () => cb(true))
.on('error', () => cb(false));
}
// Check every 250ms until app server is ready
function whenServerReady(cb) {
let serverReady = false;
let appReadyInterval = setInterval(() =>
checkAppReady(ready => {
if(!ready || serverReady) {
return;
}
clearInterval(appReadyInterval);
serverReady = true;
cb();
}),
250);
}
// Wait until server is responding then open browser on client to our starting page
gulp.task('start:client', done => {
whenServerReady(() => {
opn(`http://localhost:${config.browserSyncPort}`/*, {app: 'google chrome'}*/);
done();
});
});