节点命令在 Windows 上的 git bash 终端中不起作用

Posted

技术标签:

【中文标题】节点命令在 Windows 上的 git bash 终端中不起作用【英文标题】:Node command not working in git bash terminal on windows 【发布时间】:2017-01-12 08:43:06 【问题描述】:

我正在尝试在我的 git bash 终端中运行 node 命令。当我运行node 命令时,当我按下回车键时没有任何反应。 $ 消失了,它只是在没有> 的下一行留下一个闪烁的光标。

My-PC MINGW32 /
$ node -v
v4.5.0

My-PC MINGW32 /
$ where node
C:\Program Files\nodejs\node.exe

My-PC MINGW32 /
$ node
_

谁能告诉我可能是什么问题?

谢谢!!

【问题讨论】:

当你输入node时,它通常会等待你输入javascript代码。你试过了吗? 您看到的是REPL。这是预期的行为。如果您在命令行上传递node 一个文件或目录,它将运行它;否则,您将获得 REPL。 @LuizFernandodaSilva 是的,我运行了一个简单的console.log('hello');,但它什么也没返回。 @cartant 感谢您的信息! 注意在 Windows 上同时安装 ruby​​ 和 MSYS2。 【参考方案1】:

如果您在输入“node”后没有得到带有> 的新行 - 这可能是因为较新版本的 Git Bash 没有在他们过去的 TTY 模式下运行。 Discussion here。您可以通过输入来验证:

node -p -e "Boolean(process.stdout.isTTY)"

如果返回 false - 那么 Node REPL(和其他一些控制台工具)将无法正常工作。

有几种解决方法:

解决方法 A

winpty node

或者您可以在 .bash_profile 中添加别名:

alias node="winpty node"

# and for npm CLI/scripts:
alias npm="winpty npm.cmd"

解决方法 B

使用以下目标创建一个新的 Git Bash 快捷方式:

"C:\Program Files\Git\git-cmd.exe" --no-cd --command=usr/bin/bash.exe -l -i

并使用它而不是默认的 Git Bash。

【讨论】:

哦,你不知道你让我有多开心! 变通方法 B 是如何工作的?这些选项有什么作用?我在网上找不到任何关于这些的手册 解决方法 B 在 CMD 模式下运行 Git-bash,使用 Windows 附带的 CMD 终端。我在 git-bash 中运行节点程序时遇到了问题,直到我在 git-cmd 终端中运行它们。我随后卸载了 git 并重新安装它,指定默认使用 cmd 终端而不是 msys2。然后我将 git-bash 终端包装在 ConEmu 中以获取选项卡等:conemu.github.io/en/GitForWindows.html 据我所知,这是两全其美的。我在 1809,所以我还没有尝试过新的 Windows 终端。 另外,对于命令标志的完整列表,试试这个:/c/program\ files/git/bin/bash -c "help set"

以上是关于节点命令在 Windows 上的 git bash 终端中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Windows 上的命令行 Git

无法在 Windows 上的 Git Bash 中安装 pylint(Windows 应用商店)

Windows 上的 Git 克隆:git@github.com 不是 git 命令

scapy在Windows上的安装

Windows 10 上的 Git Bash 忽略 Ctrl + C

sh 使用Windows上的Git Bash通过命令行打开WebStorm文件。