Bower问题:未创建bower_components

11

我已经在项目根目录中创建了一个bower.json文件,但是当我运行以下命令时:

$ bower install
我得到了以下输出:
bower not-cached    https://github.com/mirceasinteanu/nanoScrollerJS.git#master
bower resolve       https://github.com/mirceasinteanu/nanoScrollerJS.git#master
bower not-cached    http://jamesallardice.github.io/Placeholders.js#*
bower resolve       http://jamesallardice.github.io/Placeholders.js#*
bower download      http://jamesallardice.github.io/Placeholders.js
bower cached        http://github.com/davatron5000/FitVids.js.git#1.1.0
bower validate      1.1.0 against http://github.com/davatron5000/FitVids.js.git#*
bower cached        git://github.com/jquery/jquery.git#1.10.2
bower validate      1.10.2 against git://github.com/jquery/jquery.git#~1.10.0
bower cached        git://github.com/gfranko/jquery.selectBoxIt.js.git#3.8.1
bower validate      3.8.1 against git://github.com/gfranko/jquery.selectBoxIt.js.git#*
bower cached        git://github.com/chrisabrams/commonjs.git#0.2.0
bower validate      0.2.0 against git://github.com/chrisabrams/commonjs.git#0.2.0
bower cached        git://github.com/components/jqueryui.git#1.11.2
bower validate      1.11.2 against git://github.com/components/jqueryui.git#*
bower cached        git://github.com/jonom/jquery-focuspoint.git#1.1.1
bower validate      1.1.1 against git://github.com/jonom/jquery-focuspoint.git#*
bower checkout      nanoscroller#master
bower invalid-meta  nanoscroller is missing "ignore" entry in bower.json
bower resolved      https://github.com/mirceasinteanu/nanoScrollerJS.git#5e348f0bb9
bower EHTTP         Status code of 404
没有创建bower_components文件夹,因此在引用bower包时会出现错误。
我正在使用:
OSX   10.9.5
node  v0.12.0
npm   v2.5.1
bower v1.3.12
git   v1.9.2

我已经尝试运行:

$ npm cache clean

任何帮助都将不胜感激。

6个回答

9

您的项目根目录中是否有.bowerrc文件?

如果没有,您应该创建一个,然后可以按照教程操作:

bower.io

如果您已经有这个配置文件,请将其发布到您的问题中 :)


1
@Oleander .bowerrc 文件是 bower 的配置文件。例如,您可以指定 bower_components 文件夹的路径。也许这会有所帮助。 - YvesHendseth

8

我不确定这里其他回答的内容(包括.bowerrc)...

当资源不可用或链接/镜像不可用时,也会出现此问题。

例如,今天我遇到了以下错误:

bower closure-compiler#*                progress Receiving objects:  17% (202/1158), 3.82 MiB | 281.00 KiB/s
bower closure-compiler#*                progress Receiving objects:  17% (202/1158), 4.03 MiB | 264.00 KiB/s
bower closure-compiler#*                progress Receiving objects:  17% (203/1158), 4.14 MiB | 266.00 KiB/s
bower closure-compiler#*                progress Receiving objects:  17% (205/1158), 4.36 MiB | 258.00 KiB/s
bower closure-compiler#*                progress Receiving objects:  17% (205/1158), 4.81 MiB | 260.00 KiB/s
bower leaflet#*                            EHTTP Status code of 404

这告诉我我使用的一个第三方地图库 leaflet 不可用。果然,当时我指向的leaflet资源也不可用。在这种情况下,我应该参考我的bower.json文件而不是.bowerrc文件,并检查我正在使用的任何资源的条目/配置(在本例中是leaflet),看是否给我返回了404错误。

关于OP的评论:

没有创建bower_components文件夹,所以我在引用bower包时出现错误。

这是因为bower install命令像事务一样工作(或似乎如此),如果其中一个部分失败则整个安装过程失败...所以如果在安装之前没有bower_components目录,则如果安装失败,它不会自动为您创建一个。


那么这个问题有解决方案吗?还是说这是一个bug?再次运行bower install似乎并没有创建文件夹。 - vaskort
如果你再次运行bower install,但仍未创建bower_components目录,则可能仍存在问题。不过我已经一年多没用bower了(使用Webpack并且很喜欢),所以我可能不正确。 - User 1058612

5

获取应用程序中的 bower_component 文件夹的简单步骤:

1)首先在您的应用程序根目录下创建 .bowerrc 文件。 (就像另一个文件在那里,如.gitignor.sailsrc等)。

2)在 .bowerrc 文件中,指定您想要 bower_component 文件夹所在的目录。请参见以下内容。

{
  "directory" : "assets/bower_components"
}

3) 然后运行 bower install

它会检查 .bowerrc 文件以获取目录并创建 bower_component 文件夹。

希望对您有所帮助 :)


我在尝试使用docker与我的angular应用程序时遇到了问题,因为它没有bower_components文件夹。为了解决这个问题,我必须使用bower安装,并从那里构建我的镜像。 - luturol

1
我知道这是一个旧帖子,但我遇到了类似的问题,并且我已经发现它与 .bowerrc 无关。事实上,问题是由错误的依赖版本引起的。在我的情况下,我手动编辑了依赖项的版本号,以为那是正确的版本号。然而,当我将该版本还原回原来的版本时,它就起作用了。
似乎如果您将依赖项的版本号更改为错误的版本号,则 bower install 将在不给出任何错误的情况下静默失败。
因此,请确保您的 bower.json 中列出的依赖项的版本号是正确的。或者,如果您不知道哪个依赖项导致问题,请备份 bower.json 文件,然后从命令行中删除 bower.json 文件中的所有依赖项,并为每个依赖项运行 bower install <yourpackage>#<version> --save
注意:请注意每个版本旁边的“~”符号;)

1

bower install --force-lastest 对我来说有效


0
请确保您的 .bowerrc 文件没有配置将库存储在除 "bower_components"(例如 libraries)之外的目录中。Bower 可能会复制文件,但不会复制到您期望的位置。

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