我在 Ubuntu 14.04 上。我做了sudo apt-get install npm
。然后我做了npm install -g bower
,成功了。
有了which npm
,我得到/usr/bin/npm/
。
有了which bower
,我得到/usr/local/bin/bower
。
我克隆了一个带有 的 github 存储库bower.json
。我尝试bower install
在根目录中执行此操作,但没有任何反应。例如,它没有回显任何内容,也没有安装任何内容。它只是……什么都没有。我试过了bower --help
,什么都没有发生。
我试过了sudo apt-get update
,它说npm
是最新的。Nodejs
也存在。每当我用 npm 做任何事情时,它什么都不做。
编辑:当我这样做时npm --global ls
,bower 列在目录中
这可能是什么问题?我该如何解决?
答案1
这对我有用:
bower install --force
--force
强制安装的地方
答案2
我遇到了同样的问题。这似乎是由错误的节点包引起的。
删除节点包并安装遗留包对我来说却有效:
apt-get remove node
apt-get autoremove
apt-get install nodejs-legacy
答案3
您检查了which npm
和which bower
,但没有检查which node
。在 Ubuntu 上,该node
软件包与 NodeJS 无关。NodeJS 软件包安装为nodejs
,这将破坏任何依赖于 的脚本node
。这类似于另一个问题jshint 的全局安装不起作用。
假设您已经nodejs
安装,您可以创建一个符号链接,以便node
指向nodejs
:
sudo ln -s /usr/bin/nodejs /usr/bin/node
如果这不起作用,或者你不想使用官方存储库中的 NodeJS 版本,你可以从 PPA 安装 Node(这将为您提供node
和nodejs
命令)或使用NVM(这是我的个人偏好,因为它避免了安装 npm 模块时的需要sudo
)。
答案4
对于那些遇到此问题但所有其他修复都不起作用的人来说。我发现我输入了错误的命令,我认为在命令前需要一个 nodejs,例如:
nodejs bower install
但是 bower 直接从终端执行
bower install
我知道这很蠢!