Ruby on rails bower和gems对于rails有什么不同?

Ruby on rails bower和gems对于rails有什么不同?,ruby-on-rails,frontend,bower,Ruby On Rails,Frontend,Bower,据我们所知,bower使前端文件(如j-query、bootstrap和许多其他文件)的管理变得更加容易,无需手动从源代码下载。那么,rails的gems呢?RubyonRails可以像bower一样需要前端和管理文件 我刚刚开始尝试在前端开发中使用bower和newbie,我对后端开发有一点了解,尤其是在ROR中。我想知道bower是如何工作的,如果我们与ROR合作,它的优势是什么,我们目前正在使用ROR开发web。我们通常使用gems安装bootstrap和许多其他前端框架,但我们希望移动并

据我们所知,bower使前端文件(如j-query、bootstrap和许多其他文件)的管理变得更加容易,无需手动从源代码下载。那么,rails的gems呢?RubyonRails可以像bower一样需要前端和管理文件

我刚刚开始尝试在前端开发中使用bower和newbie,我对后端开发有一点了解,尤其是在ROR中。我想知道bower是如何工作的,如果我们与ROR合作,它的优势是什么,我们目前正在使用ROR开发web。我们通常使用gems安装bootstrap和许多其他前端框架,但我们希望移动并开始使用bower


bower和gems对于rails有什么不同?我应该在rails开发中使用bower来管理前端文件吗

Bower允许您升级/更新web资产文件,如Bootstrap、jQuery等。Bower是一个程序,而Gem是为您编写的打包代码,您可以在Rails应用程序中使用

如果你想比较一下鲍尔,你可以试着把它和Bundle比较一下。区别在于Bower管理web资产的版本时,Bundle用于安装和更新gems。要使bundle成功工作,您需要在Gemfile中列出要安装的gem


关于鲍尔的更多信息,你们可以阅读这篇文章。

好吧,这个问题是基于观点的,所以我也会写我自己的。这里有两个主要区别。首先,正如您所提到的,bower只处理前端资产——在这种情况下,bower安装的任何东西都不会在ruby代码中提供任何帮助器方法

示例:font awesome可以通过两种方式安装,但gem将为您提供
fa_图标
view助手,这是您使用bower安装它时所没有的

另一方面,并不是所有的资产都以gem的形式提供,因此bower为您提供了更多的安装选择

就个人而言,我更喜欢使用鲍尔,除非我知道使用gem有一些极端的优势

编辑:


显然还有另一种选择,它是gems和bower资产的组合——rails-assets.org。它是在gem中包装bower组件的gem源代码。因此,如果您需要安装
angular
,您可以(除了安装
angular rails
gem)将此url作为源添加到gem文件中,然后安装
rails resource angular

,因为您已经知道Bower是什么以及rails是如何工作的,我假设您会问,对于前端依赖项,使用其中一种或另一种有什么优点/缺点

我们可以拿Bootstrap之类的东西作为例子。使用Rails gem的缺点是,每次更新或更改基础资产(引导)时,必须等待gem的作者相应地更新gem。如果他们进展缓慢或者gem的开发/维护被放弃,那么现在你就被卡住了。其优点是作者专门将该资产调整为与Rails一起使用,并且其实现通常是文档化且简单的。bootstrapgemforrails非常简单,您基本上只需删除sprockets指令并使用SASS的导入功能

另一方面,Bower的设计通常不考虑Rails,集成我的包可能更复杂一些。例如,如果您使用bower获取BS,仅添加一个SASS导入(假设您正在获取BS的SASS版本)将不起作用,因为默认情况下,SASS加载路径不会设置为查看
bower\u组件/bootstrap
文件夹


我认为,如果您想将bower合并到Rails工作流程中,您真的应该看看。这使得鲍尔公司的合并更加简单。我还将介绍一下如何使用rails资产。作者Chris Oliver似乎认为这是一条路。

你指的是rubygem
rails
,还是一个旨在补充rails的宝石(不仅仅是Ruby)?请重新表述你的问题和正文,因为它似乎是双向的。此外,还可以提供一个场景或您当前正在开发的内容,因为这将细化范围。这听起来有点基于观点,所以问问它们在XYZ中的功能有什么不同。请用这些细节编辑您的问题。人们并不总是阅读评论,你的评论提出的问题与你所问的不同。另外,请编辑以说明您指的是gem
rails
还是gem for rails。这个问题主要基于观点