如何从 windows 控制台停止 webpack 开发服务器?

How can I stop webpack dev server from windows console?

I 运行 来自 windows 控制台的 webpack-dev-server 命令:

webpack-dev-server --content-base ./build --inline --hot

在此之后我看到了消息 webpack: bundle is now VALID. 并且我无法在那里输入任何内容。但是如果我在 webpack.config.js 中更改某些内容,我必须关闭控制台,再次打开它并启动 webpack-dev-server 以应用我的更改。 如何在 不关闭控制台的情况下 停止 webpack 开发服务器?

您只需按两次Ctrl+C

I 运行 webpack devserver 通过发出 "npm start" 命令。我发现 CTRL+C 对我不起作用,只会创建一个孤立的进程。我可以通过打开任务管理器并杀死任何 运行ning node.exe 进程来杀死 devserver。

从简单的 jane windows 控制台执行此操作的另一种方法是查找节点进程 ID 并终止它们。

tasklist /FI "IMAGENAME eq node.exe"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
node.exe                      4620 Console                    2     44,568 K
node.exe                     12452 Console                    2    486,260 K

然后用下面的命令杀死他们。

taskkill /F /PID 4620 /PID 12452

评论指出的另一种更直接的方法。

taskkill /F /IM node.exe

我最近也在 Windows 机器上 运行 进入了这个难以杀死的 webpack-dev-server 进程。

Ctrl+C/break 甚至关闭都让我无所适从,我很快厌倦了手动跟踪并终止进程。

这条单线对我有用:

for /f "tokens=5" %a in ('netstat -aon ^| findstr 8080 ^| findstr LISTENING') do taskkill /pid %a /f

我继续为它制作了一个 kill-server.bat 文件:

@echo off
for /f "tokens=5" %%a in ('netstat -aon ^| findstr %1 ^| findstr LISTENING') do taskkill /pid %%a /f && echo killed PID %%a

我把它放在我的 PATH 上,所以现在要使用特定端口终止服务器,我可以:

kill-server 8080

附带说明一下,这个问题似乎只在我使用控制台仿真工具时发生,而不是在我直接使用 windows 命令提示符时发生。

在我的例子中,按一次 Ctrl+C 就足够了。之后,我收到两个终止工作的提示: 终止批处理作业 (Y/N)? ^C终止批处理作业(Y/N)?

确认第一项后,将显示常规命令提示符。但是我必须再次写 hit "Y" 并确认,这确认了第二个后台作业终止。否则它将保持孤立状态。

在 Windows 上,这个 Powershell 似乎会杀死它(以及所有 Node 进程!)

get-process node | Stop-Process

Git Bash 上似乎存在错误,无法正确地将信号正确发送到节点。

我创建了这个 bash 脚本:

echo killing process on port 

taskkill //PID `netstat -aon | grep  | grep -P '(?=LISTENING).*' -o -m1 | grep -P '\d*' -o` //F

添加 添加到您的 PATH

例如

运行 和 kill.sh 8000

  1. 键入:Ctrl+C一次。
  2. 当提示 Terminate batch job (Y/N)? Type: y

适合我。我附上了截图谢谢! command line screenshot

How can I stop webpack dev server without close console?

转到任务管理器并关闭任务 Node.js: Server-side JavaScript

在我的例子中,CTRL+C 确实关闭了终端上的进程,但是当我重新启动服务器时,我曾经得到

Error: listen EADDRINUSE: address already in use :::*port*

尝试了很多 bash 和 powershell 命令,但似乎没有一个适合 npm 脚本。

所以最后,我使用节点模块 kill-port 并且每次在启动 devServer 之前终止端口。

package.json
{
  ...
  "scripts": {
       ...,
       "serve": "npx kill-port 9000 && npm run devServer",
       "devServer": "webpack serve --open --port 9000"
   }
}