gpt4 book ai didi

ember.js - 在Ember项目中运行Yeoman和Rails的缺点/优点和可行性?

转载 作者:行者123 更新时间:2023-12-04 22:47:10 26 4
gpt4 key购买 nike

我正在开发一个Ember-Rails应用程序。我以前曾使用Yeoman来构建非ember-rails应用程序和js插件,并且我很希望能够在从事Ember-Rails项目时实现Yeoman的好处(尤其是Grunt的livereload)。但是,我不确定Ember,Rails和Yeoman是否完全兼容,以及它们的角色和职责是否重叠。例如:

依赖性管理
-我了解Bower用于依赖性管理。 Bower是否会影响通过Rails资产管道加载资产的方式?通过Bower而不是使用Rails gem加载依赖项的优点/缺点是什么?

Livereload
-livereload是否可以像处理多页应用程序(例如,不使用js框架的html站点)那样,与单页应用程序(如Ember内置的应用程序)一起使用?是否通过Rails资产管道重新加载了单个模型/ View / Controller ,还是整个应用重新加载和/或重新编译?

现有项目
-将Yeoman集成到现有的Ember-Rails应用程序时是否存在陷阱?我们正在生产中运行Ember 1.3.0-beta和Ember Data 1.0.0-beta。如果您具有最新的Ember构建经验,那么Ember-auth和Ember-data是否与Yeoman兼容?

如果任何人都有结合使用Ember,Rails和Yeoman的经验,或者如果您了解前端和后端如何与此类堆栈进行比较,请分享您的想法!您是否建议仅将部分Yeoman设置(例如Grunt)与Ember-Rails应用程序集成,而不是将整个Yeoman集成?

谢谢。

最佳答案

我不是Rails&Ember的人,但这是我对使用Yeoman的可行性的一般想法:

不使用Yeoman:可行性

根据我结合Yeoman和Django的经验,我必须说,它仅在中型或大型项目中才有回报。
在较小的版本中,尤其是在期限紧迫且对代码质量和技术没有太多关注的情况下。所使用的解决方案(例如Univ。项目),最好还是坚持使用裸露的Rails(手动下载JS库并将它们相应地提交到Rails项目结构中)。

原因很简单:微调全栈框架(Rails)和前端框架(Yeoman)确实很耗时。
特别是如果Rails受CoC原理驱动。
在进行一些设置之后,它似乎可以正常工作,但是随着项目的发展,您将发现更多的障碍,并且您将不得不进一步篡改waaaaaaay。

我认为不值得这次投资的缺点和东西:

  • Livereload
    我非常喜欢它,一开始对它感到惊讶,但是经过一段时间后,我发现我并没有花太多时间在IDE中编辑HTML&CSS,而在另一个屏幕上观看静态页面会自动刷新。在大多数情况下,我仍然需要执行Alt + Tab并触发一些操作,执行一些单击,因此是否在两者之间添加一个Ctrl + R并没有什么区别。
    在某些情况下,最好使用本地文件夹映射(Chrome开发工具)或网络代理(例如:Fiddler)。
    在某些情况下,Livereload会做得很出色,例如,如果您仅编辑CSS,则不需要执行完全重装。

    至于您的问题:
  • 对我来说,如果它检测到JS中的更改,则会重新加载整个页面。但这也许是因为我正在使用JetBrains IDE(文件系统缓存)和CoffeScript(JS编译)。
  • Yeoman最适合SPA。将其设置为SPA,而不是往返应用程序是否可以接受?
  • Bower-尝试为github项目提供依赖项管理
    Bower为您的应用程序做了什么,基本上是从github下载东西。这里没有火箭科学。
    如果下载的东西的结构是非标准的,那么Bower / RequireJS / Grunt-bower-install不知道下一步该怎么做,即如何注入(inject)所有东西以免出错。对于大多数流行的库,Bower才起作用,对于高度定制的库,您最终将手动注入(inject)下载的内容。
    责怪的是那些没有正确打包有用的github项目的人。

    此外,我还听说过一些工作流,人们由于存在凉亭问题而提交了bower_components,尽管他们从未亲身经历过,也许这些问题已解决。如果是这样,不将第三库提交给源代码的可能性绝对是一个优势。

    注意:正如我在上面指出的那样,它是Bower如何帮助您开发应用程序的的方法,但是bower在某种程度上已成为前端社区的标准,例如http://ngmodules.org/是在此基础上构建的,因此它是重要的工具。

    Rails组装管道可以获取任意github项目吗?是。
    它可以注入(inject)对您的html的库引用吗? Duno,我不是Rails家伙。
  • 生成器
    有些可以做得很漂亮,例如为您配置整个与Heroku相关的内容。糟糕的generator-heroku无法按预期工作(大约2个月前尝试过)。 travis generator也是如此。在这种情况下,修复很容易,但请参阅下一点。
    至于Angular生成器(我是Angular家伙,不是Ember家伙,对不起:-))-它仅添加2个文件并将它们包含在index.html中,此外,如果您使用的不是这么简单的语法来创建与JS框架相关的东西(示例:Angular-related stuff in coffee)生成器很可能对此一无所知。好的,您可以将补丁提交给生成器,但是AngularJS团队决定在下一个发行版中对语法进行一些更改-您知道吗? -再看下一点。
    而且,如果您的项目使用的布局中的代码是按功能/模块(例如管理模块,配置文件设置模块等)而不是按类型(指令, Controller 等)构造的,则特定于框架的生成器将不会'工作。
  • 稳定性
    Karma的发展迅速,Angular,Angular-UI和大量的前端工具,框架也在迅速发展。
    尽管Yeoman在这里做了出色的工作,但要跟上他们的最新变化确实非常困难。

  • 聘请约曼:尖端

    Yeoman提供了一些非常酷的东西,例如:
  • 林亭
  • 即时编译coffeescript,SASS / SCSS等
  • CDNifying
    当您要在本地进行脱机开发时下载库,并且仍然可以从CDN的优点中受益时,此功能非常有用。
    没有Grunt,您最终将不得不编写分析HTML的脚本
  • 自动化JS / CSS压缩
    Grunt为您做到。您只需要正确配置它。
  • 鼓励前端和后端的分离和低耦合
    关于您的问题:我怀疑您是否可以仅通过Yeoman来管理Rails部件。
    Yeoman&sth的Web应用程序的一个很好的配方是:https://stackoverflow.com/a/19425461/1432478
    这是针对Django的,相应地使其适应Rails。

  • 我的意见

    在大多数纯粹基于Spring MVC,Rails,Django等的小型项目中,您根本不会执行Grunt所做的任何事情(因此设置时间会更少)。
    在某些情况下,必须生产技术先进的前端。
    例如:最近,我发现我的银行帐户管理系统没有缩小JS。甚至都留下了有趣的评论。我没有进行任何紧急提取,但是我希望他们至少具有服务器端验证。 :-)

    Yeoman是解决所有这些琐事的解决方案的真正好组合。

    仅使用Grunt吗?恕我直言,就应用程序组装而言,Yeoman很讨厌。您可以免费获得Livereload和其他东西。

    如果:
  • 很幸运,您发现了示例配置,该配置似乎适用于您选择的Web框架,或者设法在自己的
  • 上配置了一个
  • 没有截止日期来举行

  • 那么您应该尝试一下。

    如果您要处理多个项目,则只需将配置复制粘贴到以后的项目中,便可以完成一次配置的工作。
    但是请记住,前端技术正在迅速发展,这就是为什么大量来自网络的样本无法立即使用的原因。

    进一步阅读:)
  • http://blog.tfnico.com/2013/07/considerations-for-javascript-in-modern.html

  • Java世界在这里,但我希望一些概念会有用:
  • http://addyosmani.com/blog/making-maven-grunt/
  • Javascript web app and Java server, build all in Maven or use Grunt for web app?
  • 关于ember.js - 在Ember项目中运行Yeoman和Rails的缺点/优点和可行性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20079829/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com