我在尝试使用bower(安装基础5)或在命令行上获得与工作相关的任何凉亭时遇到了很大的问题。
我已经安装了
我成功跑了
npm install -g bower grunt-cli
gem install foundation
这些都运行良好。我查看了npm/node_modules
目录,我可以看到bower
文件夹。
每次我将bower
输入cmd
,ruby cmd
或git bash
我都会
命令无法识别
我在环境变量中设置了git路径。
令人讨厌的是凉亭网站上的指示。它声明:
npm install -g bower
bower install
这不起作用!
答案 0 :(得分:242)
我也在npm install -g bower
之后遇到了这个问题。我通过在我的路径中添加npm的二进制文件夹来解决了这个问题。
以下是一些有用的提示:
npm config get prefix
。如果您使用Chocolatey,此路径可能类似于C:\Users\username\AppData\Roaming\npm
(或C:\ProgramData\chocolatey\lib\nodejs.commandline.X.XX.XX\tools
。)将步骤1中的路径添加到路径中。
打开Windows控制面板,搜索environment
,然后单击edit environment variables for your account
或编辑系统环境变量`。
找到名为Path
或PATH
的变量,或者如果它不存在则创建一个变量。
将步骤1中的路径粘贴到此处(;
分隔)。
您可能需要重新启动命令提示符窗口。
您现在应该可以输入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(你可以在搜索栏也是如此),因为不同用户的位置可能会有所不同。
答案 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”
从我运行凉亭的目录,一切正常,甚至从其他目录