webpack-dev-server在关闭后保持端口存活

时间:2018-04-16 21:19:07

标签: node.js webpack vuejs2 webpack-dev-server

我有一个使用webpack-simple模板创建的vue应用程序。

我想使用静态端口,所以我在文件webpack.config.js中的devServer属性中硬编码端口

devServer: {
        historyApiFallback: true,
        noInfo: true,
        overlay: true,
        port: 1123
    },

我第一次运行npm run dev一切正常。在我使用ctrl+c(在Windows中使用git bash)关闭进程并重试运行npm run dev时,会发生错误,告诉我该端口当前正在使用中。如果我第一次更改端口,那么它会重复相同的错误(一次又一次)。

我检查使用端口及其节点的进程。我不明白为什么节点在点击ctrl+c之后会继续收听这些端口。

我的开发脚本:

"dev": "cross-env NODE_ENV=development webpack-dev-server --hot"

信息

OS: Windows
Terminal: Git Bash
Node: v9.5.0
NPM: v5.6.0
Webpack: 3.6.0
Webpack-Dev-Server: 2.9.1

1 个答案:

答案 0 :(得分:0)

如果进程突然退出,则不会干净地关闭侦听服务器。节点进程终止,但操作系统保持端口打开(处于TIME_WAIT状态)一段给定的时间,以允许数据包的队列为空(请参阅socket FAQ和{{3 }}。 在节点中,您可以尝试在exituncaughtException事件上关闭服务器来缓解此问题。请参阅此"2.7 Please explain the TIME_WAIT state."相关问题。