- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Javascript 依赖项在我的 Rails 应用程序中不断增长,这导致了一些问题。一方面,由于数量众多,因此很难跟踪和更新不同 Javascript 库的版本。起初我试过turning them into gems ,但后来我必须管理这些。有些已经是 gem (如主干 rails ),但我想要一个一致的包管理器。
所以我正在调查 Bower ,“网络包管理器”。部分博文from kaeff和 from af83一直有帮助,但我仍然遇到问题。我希望这个问题可以引出人们可以用来为他们的项目找到最佳解决方案的各种答案。
我特别希望看到在 Heroku 部署中通过 Bower 管理 Assets 的建议。
最佳答案
一种方法是使用允许您 application.js
的 sprockets 版本。需要 Bower 定义的包。这个特性是在 Sprockets 2.6 中添加的,Rails 3.x 不允许你捆绑 due to a version restriction .要获得该功能,您可以捆绑 gem "sprockets", "2.2.2.backport1"
.
这将使 Sprockets 开始在 vendor/assets/components
中寻找 Assets 也。路径是供应商/组件,因为 Bower 包也可以包含 CSS 或图像 Assets ,而不仅仅是 Javascript。当您需要包时,Sprockets 知道要包含哪些 Javascript 的方法是阅读 bower.json
main
的文件属性,表示管道应包含哪些文件。这里的一个问题是,许多 Bower 包不提供此属性或提供假定 RequireJS 可用的主要来源(例如 d3 )。你可以看到用 bower list --map
定义了哪些 source main .
当main
不适合你,你可以简单地使用 Bower 来管理单个远程 JS 文件而不是包。 Josh Peek 有 a gist that demonstrates this . Bower 最新版本预计bower.json
而不是 component.json
所以我更新了步骤:
$ npm install -g bower
$ mkdir -p vendor/assets
$ cd vendor/assets/
$ curl https://raw.github.com/gist/3667224/component.json > bower.json
$ bower install
bower.json
加载 jQuery。然后在您的
application.js
您可以简单地
//= require jquery
和 sprockets 会在您的
vendor/assets/components
中找到它.要添加新的依赖项,只需将它们包含在您的
bower.json
中。并运行
bower install
再次,例如:
{
"dependencies": {
"jquery": "http://code.jquery.com/jquery-1.8.1.js",
"d3": "http://cdnjs.cloudflare.com/ajax/libs/d3/3.0.8/d3.js"
}
}
lib
和
vendor
一个配置文件中的 Assets ,您可以使用
bower-rails ,但使用
lib
没有多大意义.该 gem 还提供了一些 Rake 任务,但除了基本的 Bower 命令之外,它们什么都不做。
vendor/assets/components
目录并通过
bower
更新它命令。
application.js
中使用一个指令来要求整个 Bower 依赖集,那就太好了。 .
gist from kaeff说明如何创建
require_bower_dependencies
指示。目前还没有 gem 可以为您执行此操作。在此之前,您必须在
bower.json
中声明每个依赖项。和
application.js
.
关于ruby-on-rails - 如何在 Rails 应用程序中使用 Bower 管理 Javascript 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16266528/
我刚刚升级到Bower 1.0,做了一个bower install,发现了一堆新的.bower.json文件(注意前导时期)。 我在changelog或文档中没有找到对.bower.json的引用。我
Bower 的网站描述了 Bower.json 中的 ignore 键: ignore [array]: An array of paths not needed in production that
我已经在我的项目根目录中添加了一个 bower 包。我正在使用 bower,因此可以更轻松地管理每个组件的更新(bower 的功能之一)。但是我在安装后收到了这条消息: no-json No bowe
当我通过以下方式从 git repo 安装库时: bower install git@github.com:fabiantheblind/p5.js.git --save 该组件被克隆到我的 bowe
我已经为 Bower 设置了一个 Nexus 代理注册表。我正在使用 Debian 9。bower 版本是 1.8.8,安装了 bower-nexus3-resolver(版本 1.0.4)。我的 .
是否可能只有一个可以从 Bower“安装”的存储库? 目前我已经注册了一个连接到开发库的 bower 包,但是在运行时 bower install我只想要 dist要下载的文件。 我见过有人保留两个存
我正在尝试安装 https://github.com/aterrien/jQuery-Knob通过 bower 。在包的 bower.json 文件中,我看到: { "name": "aterrien
我正在尝试通过 bower 安装本地 Jquery ui。 我有一个名为 jquery-ui 的本地文件夹并运行了以下命令 bower install jquery-ui/jquery-ui.min.
我正在研究如何使用 bower 安装软件包。 当我 'bower install packagename' 时,软件包安装在/app/components/中。 但是,我想自己决定项目的结构。 有没有
$ bower install angular-animate --save bower cached git://github.com/angular/bower-angular-animate.g
我正在使用 bower 从下面的 bower.json 中查看依赖项,所以问题是我希望 bower 提供更新版本发布的依赖项报告但不安装它,对于使用 npm-check-updates for npm
一些库在其 Github 存储库中没有已经构建的 JavaScript 文件,因为这些库的作者反对保留构建工件(例如 Sinon.JS)。是否有使用 Bower 处理此问题的首选方法? 我知道我可以
我想运行我自己的 bower 服务器来开始跨团队共享几个内部模块。我很难找到运行您自己的服务器的信息。在 bower.io 网站上有这条线 N.B. To run your own Bower End
在 *nix 上,bower 使用 ~/.bower其缓存的文件夹(包等)。 我想将其更改为其他位置。 bower spec来自的文档建议我配置 storage输入我的.bowerrc . 我在我的项
我有一个项目依赖于另一个使用 Bower 的项目。我要 bower install当我在父项目上运行它时也运行在该组件上。到目前为止,我还没有在 configuration spec 中找到任何东西,
如何在不提供 bower.json 中的用户凭据的情况下将访问受限存储库作为依赖项添加到 bower.json? 即我想避免像这样指定它: { "dependencies": { "ang
Bower 文档说 N.B. If you aren't authoring a package that is intended to be consumed by others (e.g., yo
我正在下载 Angular、Angular-Bootstrap 和 Bootstrap with Bower。 Bootstrap 依赖于进程中安装的 jquery。但我的项目中不需要它,因为我只使用
我正在尝试为使用 Bower 的应用程序设置自动包构建。 postinstall中进入bower install时,bower提示: [?] May bower anonymously report
我想将特定分支的最新版本指定为依赖项。具体来说,我想在 Bootstrap v3.0 发布之前使用它。 将其指定为 Bower 中的依赖项的最佳方法是什么? 最佳答案 您需要使用#、appended
我是一名优秀的程序员,十分优秀!