bower命令找不到窗口

时间:2014-02-12 15:38:28

标签: node.js zurb-foundation bower

我在尝试使用bower(安装基础5)或在命令行上获得与工作相关的任何凉亭时遇到了很大的问题。

我已经安装了

  • ruby​​ 1.9.3
  • git(从命令提示符选项运行)
  • 的NodeJS

我成功跑了

npm install -g bower grunt-cli
gem install foundation

这些都运行良好。我查看了npm/node_modules目录,我可以看到bower文件夹。

每次我将bower输入cmdruby cmdgit bash我都会

  

命令无法识别

我在环境变量中设置了git路径。

令人讨厌的是凉亭网站上的指示。它声明:

npm install -g bower
bower install

这不起作用!

10 个答案:

答案 0 :(得分:242)

我也在npm install -g bower之后遇到了这个问题。我通过在我的路径中添加npm的二进制文件夹来解决了这个问题。

以下是一些有用的提示:

  1. 找到npm全局二进制文件的位置:npm config get prefix。如果您使用Chocolatey,此路径可能类似于C:\Users\username\AppData\Roaming\npm(或C:\ProgramData\chocolatey\lib\nodejs.commandline.X.XX.XX\tools。)
  2. 将步骤1中的路径添加到路径中。

    • 打开Windows控制面板,搜索environment,然后单击edit environment variables for your account或编辑系统环境变量`。

    • 找到名为PathPATH的变量,或者如果它不存在则创建一个变量。

    • 将步骤1中的路径粘贴到此处(;分隔)。

    • 您可能需要重新启动命令提示符窗口。

  3. 您现在应该可以输入bower命令。

答案 1 :(得分:19)

如果这有帮助。

我是一个npm / bower nooB - 但在我的案例中发生的事情是,我正在使用Angular JS教程, 似乎 bower设置为通过npm使用,而不是直接通过命令行。

注意:在我的情况下,我认为我的凉亭安装搞砸了。 我跑了这个来修理我的凉亭安装:

npm install -gf bower

然后我编辑了我的bower.json文件,添加到我想要使用的新库中(在我的例子中是angular-sanitize)

我CD到项目的位置

cd myProjectPath

然后运行凉亭,我实际上使用了npm install:

npm install

这似乎是将bower作为节点包运行,然后扫描bower.json并安装任何丢失的bower包。

要将bower作为npm包运行,请在bower命令之前添加npm

npm bower -v

希望这有帮助,

肖恩

答案 2 :(得分:11)

如果上述解决方案不起作用。我认为你应该在命令提示符中指定使用bower的绝对路径。在我的app文件夹中,我只需要调用

C:\Users\yourusername\AppData\Roaming\npm\bower.cmd install

这是我的bower.cmd中的内容。看起来我的窗户无法识别~dp0变量,

node  "C:\Users\yourusername\AppData\Roaming\npm\node_modules\bower\bin\bower" %*

答案 3 :(得分:2)

如果您的Windows PATH变量接近1024个符号长度,这肯定会发生。所以新的链接如" C:\ Users \ username \ AppData \ Roaming \ npm"根本不符合这一点。

检查你的PATH,删除额外的东西,并尝试重新安装node.js和bower等。还有way增加1024个长度限制

答案 4 :(得分:1)

正如其他人提到的那样,必须将bower添加到环境变量中,但最简单的定位方法只是先输入你的npm位置,然后使用Browse File并在你的系统上找到bower(你可以在搜索栏也是如此),因为不同用户的位置可能会有所不同。

$lookup

答案 5 :(得分:1)

<强> 1。输入windows cmd:

for /f %a ('npm config get prefix') do setx path %a

<强> 2。重新加载cmd

答案 6 :(得分:0)

同样的问题。我通过使用另一个版本的凉亭解决了它。当我尝试使用1.2.6版本时它可以工作

$ npm install -g bower@1.2.6

答案 7 :(得分:0)

安装Chocolatey 0.9.8.28后出现此问题。我尝试了这里列出的大多数解决方案,但我无法在Powershell命令行中识别出'bower -v'。这似乎有点奇怪,因为Chocolatey Install就是'所有关于'Powershell。最终我通过设置路径成功,以便Powershell可以找到更新的PATH变量设置,但我需要帮助来理解为什么以及如何做,我在下面提供:

最初使用Powershell失败后,我能够进入标准的DOS命令行(不是在powershell中使用cmd / c)并成功执行上面讨论过的路径设置的所有变化,并且成功地看到了凉亭和由DOS命令行识别的bower命令。并且cmd窗口显示完整更新的路径(C:\ ProgramData \ chocolatey \ lib \ nodejs.commandline.0.10.34 \ tools) - 请注意版本号可能会从尊贵的KimchiMan的列表中更改。

此PATH通过关闭和打开新的DOS命令行窗口持续存在,但在任何Powershell窗口中都无法识别(曾经)。

然后我发现了以下相关讨论:Set Powershell Path Settings.

这指出Powershell在启动时会识别HKLM路径设置版本。并且可以在会话中设置路径EITHER(非持久性)或在注册表中设置(持久性)。以下内容直接来自该讨论。

这些命令可以为powershell SESSION暂时设置PATH:

$env:Path = 'New path'
[System.Environment]::SetEnvironmentVariable('Path', 'New Path', 'Process')

这些命令可以为所有新的Powershell会话永久设置PATH:

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name 'Path' -Value 'New Path'
[System.Environment]::SetEnvironmentVariable('Path', 'New Path', 'Machine')

但我之前以编程方式设置了注册表设置,我不相信PS脚本中的一行或两行完全可以完成任务。 所以我甚至没有尝试这个选项。

相反,我转到控制面板/系统控制台并通过“环境变量”对话框更改了路径。我注意到我在DOS命令行中使用set PATH更改路径所做的所有工作在Windows会话期间都有效,但是新的路径条目没有持久保存到Environment Variables / Registry,即使Dos会话正在运行管理员。

通过控制面板进行此更改后,Chococlatey工具文件夹中的凉亭更新路径(可能是所有后续工具安装)被永久设置,并且在DOS命令行和Powershell命令行中都可以使用bower。

希望这会有所帮助...

答案 8 :(得分:0)

卸载64位并安装32位版本的nodejs以及git- 32位工作!

答案 9 :(得分:0)

有同样的问题。 我刚刚运行了“npm install -g bower”然后访问了它下载的目录,在我的情况下,位置是“C:\ Users \ user \ AppData \ Roaming \ npm \ node_modules \ bower”

从我运行凉亭的目录,一切正常,甚至从其他目录