首页 > 解决方案 > 在 Windows 上,如何阻止 npm 在新窗口中运行进程?

问题描述

当我npm在我的 Windows 10 机器上运行命令时,新进程似乎在新窗口中产生。

在我(使用 Mac 的)同事机器上,我看到这些命令在调用它们的同一终端窗口中运行。这是我所期望的行为,而且更有用 - 例如,很难在测试结果完成和终端窗口关闭之间的瞬间看到我的测试结果!

例如,我们packages.json有一个要运行的脚本jest

scripts": {
    "test": "jest"
}

当我运行npm run test时,以下内容被写入当前终端:

$ npm run test

> @headuplabs/mobile@0.0.1 test C:\Users\TomWright\Documents\Repos\HeadUp.Mobile
> jest

但是 jest 的实际执行会在一个新创建的窗口中开始:

真的很刺激的截图...

我在 VS Code 中使用“git bash”作为我的默认集成终端,但我可以使用 cmd.exe 和 VS Code 外部(即通过独立运行 git bash 或 cmd)来复制它。

我认为我的 npm 安装配置不正确,但我的谷歌搜索没有得到任何答案。

有谁知道我需要做什么才能使 npm 进程在同一个终端窗口中运行?

标签: windowsbashnpmterminalgit-bash

解决方案


如“如何在 windows 中为 npm run-scripts 设置 shell ”中所述,您可能希望在 npm 本身中配置 shell:

npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"

这将避免默认设置,它可以触发一个新的 shell 窗口。


推荐阅读