关闭浏览器同步实例而不退出NodeJS

时间:2015-08-28 11:31:06

标签: node.js gulp browser-sync

我正在尝试创建一个gulp任务,它会旋转3个Browsersync实例,使用Protractor对它们运行端到端测试,然后很好地关闭Browsersync实例。

到目前为止,我已经提出了以下解决方案:

 // avoid property lookups using local vars
 int werteLength = arrWerte.length - 2;
 float[][] localArrWerte = arrWerte;

 for(int inde = 0; inde <= werteLength; inde++) {
     float[] xy = arrWerte[inde];
     float[] xyII = arrWerte[inde + 1];
     canvas.drawLine((xy[0], xy[1], xyII[0], xyII[1], fc);
 }

这里的问题是/** * Run the end-to-end tests using Protractor. */ gulp.task('test:protractor', [ 'serve:user', 'serve:bootstrap', 'serve:website' ], function(done) { var protractor = spawn('protractor', [ path.resolve(__dirname, '..', 'protractor.conf.js'), '--suite=bootstrap', '--param.host.user', 'http://' + util.getDockerIp() + ':' + serve.userServer.getOption('port'), '--param.host.bootstrap', 'http://' + util.getDockerIp() + ':' + serve.bootstrapServer.getOption('port'), '--param.host.website', 'http://' + util.getDockerIp() + ':' + serve.websiteServer.getOption('port') ], {stdio: 'inherit'}); protractor.on('close', function(code) { if (code) { throw new Error(chalk.red('End-to-end tests failed')); } serve.userServer.exit(); serve.bootstrapServer.exit(); serve.websiteServer.exit(); done(); }); }); 。在内部调用xxxServer.exit(),关闭整个NodeJS实例。这样我就无法很好地关闭每个服务器并让gulp处理其余的服务器。

我无法找到任何关于以任何其他方式关闭Browsersync的信息,因此我查看了process.exit()函数,如下所示:

exit

所以我尝试手动进行清理而不调用function exit() { if (browserSync.active) { browserSync.events.emit("service:exit"); browserSync.cleanup(); } process.exit(); }

process.exit()

这仍然会阻止NodeJS实例关闭。

是否可以在不调用serve.userServer.instance.events.emit('service:exit'); serve.userServer.instance.cleanup(); serve.bootstrapServer.instance.events.emit('service:exit'); serve.bootstrapServer.instance.cleanup(); serve.websiteServer.instance.events.emit('service:exit'); serve.websiteServer.instance.cleanup(); 的情况下关闭Browsersync实例?

0 个答案:

没有答案