Bower找不到包,无法安装新包

时间:2017-07-19 10:04:45

标签: bower bower-install

所以我通过bower - jQuery UI Sortable安装了。包的文件夹按预期放在我的资源文件夹中。然后我想安装另一个软件包(例如:noty.jsbower install --save noty),我得到了这个:

bower noty#*                not-cached https://github.com/needim/noty.git#*
bower noty#*                   resolve https://github.com/needim/noty.git#*
bower fullcalendar#*            cached https://github.com/fullcalendar/fullcalendar.git#3.4.0
bower fullcalendar#*          validate 3.4.0 against https://github.com/fullcalendar/fullcalendar.git#*
bower noty#*                  download https://github.com/needim/noty/archive/v3.1.1.tar.gz
bower noty#*                   extract archive.tar.gz
bower noty#*                  resolved https://github.com/needim/noty.git#3.1.1
bower                        ENOTFOUND Package jQuery UI Sortable=jquery-ui-sortable not found

注意 :我也尝试过安装fullcalendar。

即使它说它下载了包并提取了archive.tar.gz,但在我项目的文件夹中找不到该包。 jQuery UI Sortable仍在那里。我甚至在使用它。

bower.json保持不变。如果我运行bower install --save noty,它只会说:

bower noty#*                    cached https://github.com/needim/noty.git#3.1.1
bower noty#*                  validate 3.1.1 against https://github.com/needim/noty.git#*
bower                        ENOTFOUND Package jQuery UI Sortable=jquery-ui-sortable not found

我有一个.bowerrc指向resources/assets/bower(因为它是一个Laravel项目)。那么我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

出现此错误的原因是因为bower使用name来构建目录结构并定义包的实际名称。 jQuery UI Sortable包使用bower.json文件中的大写字母和空格来定义名称,如下所示:

{
  "name": "jQuery UI Sortable",
  "version": "1.0.0",
  ...

这显然不是一个好主意,要在包目录名称中包含大写字母和空格:

jQuery UI Sortable

因此,我们需要将名称从jQuery UI Sortable更改为jquery-ui-sortable并删除空格和大写字母。为此,我们必须使用<package_installed_name>=<package_list_name>来定义名称,在我们的例子中将是:

bower install --save jquery-ui-sortable=jquery-ui-sortable

执行此操作后,只需安装noty即可成功安装:

bower install noty

Bower Noty install

jQuery UI Sortable and Noty together

在尝试使用正确的名称安装jQuery UI Sortable之前,请不要忘记删除bower packages目录中的jquery-ui-sortable目录。