更新Bower到最新版本时出现的问题。

57

我正在使用 Bower

$ bower -v
0.9.2

最新版本的Bower是1.x.x https://github.com/bower/bower/releases

我打算更新Bower到最新版本。

npm update -g bower 

这并没有帮助

我仍然有

$ bower -v
0.9.2

3
“directly involve tools used primarily for programming” - 除了应用程序开发,一个人会为什么要使用Bower?标记语言不严格属于编程代码,但通常用于获取JavaScript库,并通过Node包管理器安装Bower。没有人会为了“一般计算”而安装NodeJS。这不是一个高级用户问题,也不应该被关闭。嘘。 - Jeremy Anderson
3个回答

97

1) 您需要清除npm缓存,然后更新bower

sudo npm cache clean
npm update -g bower

2) 如果第一种解决方法无效

尝试将其卸载并重新安装

npm -g uninstall bower
npm -g install bower

检查它是否仍然在这里

which bower

如果它会显示给你一些像这样的东西

/usr/local/bin/bower

然后

rm <path from previous command>

重新安装后

npm -g install bower

打开新的Bash窗口,享受最新版本的Bower。

同样的方法也适用于其他软件包。


1
有趣的是,npm update -g bower 正在将我的 bower 更新到最新版本,但当我使用 bower --version 检查版本时,它显示了旧版本。我从 .npm/bower/ 中删除了旧包,然后它才识别出新版本! - mohi
“which bower”? 是什么?它不能从命令行工作。 - serge
哦,伙计,你可以提一下你使用的操作系统是 ubuntu(极客?) - serge
OSX,但是...没关系。)) 是的,和使用Bower的所有“极客”一样。 - Nedudi

1

这里可能涉及到很多复杂的部分。首先,你应该尝试:

npm cache clean
sudo npm cache clean
npm update -g bower

鉴于所有的组成部分,这很不可能对你起作用。

在Mac上,使用brew和nvm以及一些历史记录,你可以像这样操作:

1. 找出现在bower所在的位置

 $ which bower
 /usr/local/share/npm/bin/bower
 $ ls -hal /usr/local/share/npm/bin/bower
 lrwxr-xr-x  1 iwein  admin    35B Dec 15  2013 /usr/local/share/npm/bin/bower -> ../lib/node_modules/bower/bin/bower
 $ ls -hal /usr/local/share/npm/lib/node_modules/bower/bin/bower 
 -rwxr-xr-x  1 iwein  staff   3.3K Sep 17  2013 /usr/local/share/npm/lib/node_modules/bower/bin/bower
 $ bower -v
 1.2.8
 $ rm -rf /usr/local/share/npm/lib/node_modules/bower

2. 使用npm重新安装bower

 $ npm install -g bower
 /Users/iwein/.nvm/v5.11.1/bin/bower -> /Users/iwein/.nvm/v5.11.1/lib/node_modules/bower/bin/bower
 /Users/iwein/.nvm/v5.11.1/lib
 └── bower@1.7.9

 $ bower -v
 bash: /usr/local/share/npm/bin/bower: No such file or directory
 $ which bower
 /Users/iwein/.nvm/v5.11.1/bin/bower
 $ bower
 bash: /usr/local/share/npm/bin/bower: No such file or directory
 $ ls -hal ~/.nvm/v5.11.1/bin/bower
 lrwxr-xr-x  1 iwein  staff    35B Jun  1 11:53 /Users/iwein/.nvm/v5.11.1/bin/bower -> ../lib/node_modules/bower/bin/bower

3. 打开一个新的终端

...或者执行source .profile或其他操作。检查是否使用相同的Node版本(如果不是,可能需要使用不同的nvm版本)。

 $ which bower
 /Users/iwein/.nvm/v0.10.24/bin/bower
 $ bower -v
 1.4.1
 $ nvm use 5
 Now using node v5.11.1
 $ which bower
 /Users/iwein/.nvm/v5.11.1/bin/bower
 $ bower -v
 1.7.9

而且你做得很好。

请注意:

  1. 您必须确保在正确的位置安装,可能需要在系统上为不同的项目安装多个版本的bower、nvm、npm或node...
  2. 您需要重新启动终端,以确保链接正确完成。

0

可能 bower 更新已经成功了,只是缺少更新环境变量。

在我的 Ubuntu 上大概是这样的:

ln -sf /usr/local/n/versions/node/6.2.0/bin/bower /usr/bin/bower

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接