我尝试在我的 Mac 上安装 Twitter Bower,并使用了以下命令:
npm install bower -g
我尝试了bower --help
,输出为bower命令未找到
。这是为什么?
就像这个问题 (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
中。
package.json
在本地安装在 node_modules
中,而不是全局安装,因为不同的项目可以使用不同的版本(这就是 npm
的全部意义)。真正的问题是系统无法找到本地的 bower 可执行文件。 - Bruno Finger我很确定您实际上没有正确安装它。由于您正在尝试全局安装,因此需要使用sudo运行:
sudo npm install -g bower
或者,您可以使用随npm>5.6一起提供的npx
。
npx bower install
这并不是一个Bower的问题,尽管我在使用Bower时遇到了这个问题。
看起来这是一个node-which的问题。如果文件在路径中,但设置了setuid/setgid位,那么node-which将找不到它。
这里有一个设置了s位的文件:(Unix的'which'命令可以轻松找到它)
ls -al /usr/local/bin -rwxrwsr-- 110 root nmt 5535636 Jul 17 2012 git
这里是一个node-which的尝试:
> which.sync('git')
Error: not found: git
我更改了权限(chomd 755 git)。 现在node-which可以找到它。
> which.sync('git')
'/usr/local/bin/git'
我正在使用 Node 版本管理器。我遇到了这个错误提示,因为我已经切换到了另一个版本的 Node。当我切换回安装 bower 的 Node 版本时,这个错误就消失了。在我的情况下,命令是 nvm use stable
npm install
的输出是什么?它失败了吗?它是否将 bower 安装到了不在你的PATH
上的某个位置? - jches