【发布时间】:2016-08-16 14:19:05
【问题描述】:
我正在尝试在不同的 gulp 任务中启动和停止 gulp-webserver,如下所示:
gulp.task('webserver', ['build'], function () {
gulp.src([config.build, config.base])
.pipe(webserver({
livereload: false,
directoryListing: false,
open: true
}));
});
gulp.task('webserver-stop', function () {
var stream = gulp.src([config.build, config.base])
.pipe(webserver());
stream.emit('kill');
});
我能够成功启动服务器,但是当我尝试停止使用 gulp webserver-stop 时,出现以下错误。
[19:36:30] Finished 'webserver-stop' after 27 ms
events.js:160
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE 127.0.0.1:8000
at Object.exports._errnoException (util.js:1008:11)
at exports._exceptionWithHostPort (util.js:1031:20)
at Server._listen2 (net.js:1253:14)
at listen (net.js:1289:10)
at net.js:1399:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:65:16)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:84:10)
我以前没有大量使用 gulp 和 javascript 的经验, 请帮忙解决这个问题。
【问题讨论】:
-
您试图在同一端口上启动服务器太快。您已经发出事件来杀死侦听器,但由于它是异步的,您必须在另一个侦听器回调中重新启动。
-
我想停止我在上述任务中启动的服务器实例。是否有可能来自另一个 gulp 任务?
-
您是否尝试从一个终端运行
gulp webserver,然后从另一个终端运行gulp webserver-stop? -
是的,我想这样做。
标签: javascript angularjs gulp gulp-connect