Windows中的bower init命令错误(gitbash)

Kir*_*ena 7 git github git-bash bower bower-install

当我在gitbash中运行bower init时,会显示以下错误:

bower ENOINT Register需要一个交互式shell

其他错误详细信息:请注意,您可以使用--config.interactive手动强制交互式shell

Von*_*onC 4

问题:mintty.exe

Issue 802确实提供了很好的解释:

我已将此问题归结为mintty.exe.

bower/lib/config.js文件中(bower v 1.4.1 的第 34 行),tty.isatty(1)在 下返回 false mintty.exe,但如果运行cygwin.bat(使用bash --login -iWindows 终端)则返回 true。

这是检查终端的便捷方法:

node -e "var tty=require('tty'); console.log('tty.isatty(1):' + tty.isatty(1))"
Run Code Online (Sandbox Code Playgroud)

可能相关:mintty - 问题#56“改进对本机控制台程序的支持”

对于那些偶然发现此问题并寻求解决方案的人来说,解决此问题的明显快速解决方法就是避免使用 mintty。
这并不意味着您必须返回使用 Windows 终端进行 bash,因为还有其他选择:

PS 如果您曾经注意到 的其他问题mintty.exe,例如 msysgit 未正确提示输入密码或节点 repl 无法工作,这可能是同一个问题。


解决方法:

  • 从运行命令执行此操作
    cmd.exe /C "C:\Program Files\Git\bin\bash.exe" --login -i
Run Code Online (Sandbox Code Playgroud)

然后bower init就可以工作了,你可以在 minw64、mintty 或 git-bash 中做任何事情,无论它叫什么。

或者

如果您使用的是 Windows,请使用 CMD 运行 Bower init

或者

如果您使用 git bash 请按照下列步骤操作:

  • 卸载现有的 GIT bash
  • 重新安装 GIT bash
  • 安装时设置:
    • 3a:从 Windows 命令提示符中选择 > 使用 Git
    • 3b:选择>签出Windows风格,提交Unix风格的行结尾
    • 3c:选择>使用Windows的默认控制台窗口