找不到凉亭命令


158

我试图在Mac上安装twitter bower,然后使用

npm install bower -g

然后我尝试了bower --help,结果是bower command not found。这是为什么?


2
什么是输出npm install?失败了吗?它是否将凉亭安装到不在您的某个位置PATH
jches 2012年


Answers:


365

就像这个问题(npm全局路径前缀)一样,您所需要做的就是设置适当的值npm prefix

UNIX:

$ npm config set prefix /usr/local
$ npm install -g bower

$ which bower
>> /usr/local/bin/bower

Windows和NVM:

$ npm config set prefix /c/Users/xxxxxxx/AppData/Roaming/nvm/v8.9.2
$ npm install -g bower

然后bower应位于您的$PATH


1
我想补充一点,如果您处理多个项目,这不是最正确的答案。Bower应该node_modules从本地package.json而不是全局安装在本地,因为不同的项目可以使用不同的版本(这是的重点npm)。真正的问题是系统无法找到本地Bower可执行文件。
Bruno Finger

@BrunoFinger:将凉亭安装到全局范围时,该答案不能解决问题。但是,使用本地节点包可能是处理项目特定工具的更好方法。
彼得·约阿希姆

我认为,如果将npm前缀设置为/ usr / local,则没有sudo,npm install -g将会失败。
imafish

我们不建议将Bower用于新项目。请考虑使用Yarn和Webpack或Parcel。
丹尼尔(Daniel)

60

我几乎可以肯定您实际上没有正确安装它。由于您尝试在全球范围内安装它,因此需要使用sudo运行它:

sudo npm install -g bower

3
这就是必须安装Bower的方式,否则它将仅安装在执行命令的文件夹中。-g表示全局,它还会为模块创建所需的链接,这些链接可以作为系统命令执行,bower,grunt-cli甚至npm都是此类的清晰示例。
Erick Ruiz de Chavez

不要使用sudo安装!只需使用Brew Doctor并进行Brew Doctor建议的修复,然后您就不需要使用sudo了!
djangofan

4

事实证明这不是凉亭问题,尽管它对我来说是凉亭。

这似乎是一个节点问题。如果文件在路径中,但是设置了setuid / setgid位,则找不到该文件。

这是一个设置为s的文件:(unix'that'会发现它没有问题)。

ls -al / usr / local / bin -rwxrwsr-- 110根nmt 5535636 2012年7月17日git

这是一个节点尝试:

> which.sync('git')
Error: not found: git

我更改了权限(选择755 git)。现在可以找到它的节点。

> which.sync('git')
'/usr/local/bin/git'

希望这可以帮助。


3

我正在使用节点版本管理器。我收到此错误消息是因为我已切换到其他版本的节点。当我切换回安装Bower的节点版本时,此错误消失了。就我而言,命令是nvm use stable


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.