Rails Webpacker或Vue-CLI?

all*_*rry 8 ruby-on-rails single-page-application rails-api webpack vue.js

我正在构建单页(Web)应用程序.我对Rails v5.0非常感兴趣,特别是它的内置API功能.

在过去,我已经构建了JavaScript前端Vue.js,通常使用提供的模板Vue-CLI project.这允许Vue component-based基本上在任何地方部署静态站点.这很棒.

现在,Rails 5.1有一些内置的Webpack和Yarn功能看起来非常引人注目.我不知道如何继续我的新申请.

我的问题:

  • 使用Rails v5.1中提供的Webpacker扩展,将Webpack和Vue集成到Rails中的优缺点是什么?我打算部署到Heroku.
  • 另一方面,在后端使用Rails API-only模式的优缺点是什么,并将基于Vue/Webpack的前端保存在自己的目录中?我将所有内容保存在同一个存储库中,通过Heroku部署后端,并通过像Netlify这样的静态主机部署前端.
  • 哪种方法会有更多的认知开销或技术复杂性?

在过去的几天里,我一直在四处寻找,而且我没有在网上找到关于此的简明信息.人们似乎对Rails开发环境的自动重新加载功能感兴趣,但我已经使用Vue-CLI免费获得了这些功能.

据我所知,这些是将它们分开的原因:

  • 在任何地方部署前端都非常简单.
  • Rails的Webpacker模式非常新,目前还没有很多教程或指南,特别是关于集成测试.将事物分开意味着我现有的测试设备仍应适用.

以下是将两个部分集成在一起的一些优点:

  • 如果有必要,可以在前端使用静态资产,也可以在将来使用服务器生成的页面.
  • 购买"Rails方式",Rails团队隐含的未来维护.
  • JS Frontend不需要单独托管.
  • 不需要担心CORS(?)

这两种方法还有哪些具体的好处?

小智 2

当我开始时,我采用了 webpacker 方式,不知何故,因为这就是它看起来“应该”的样子。正如你所说,指导很少。Webpacker(依赖于最新的节点)似乎是一个不断变化的目标,使得部署甚至开发变得更加复杂。为了什么好处我问并摆脱了它。

现在我使用来自 cdn 的vue 。好处:

  • 缓存在靠近用户的位置
  • 几乎零安装
  • 轻松拥有开发/生产版本

我将应用程序代码写入 Rails 模板中。使用 haml,实际上是 ruby​​2js,但你可以使用 javascript 就可以了。我就是这样开始的,但我喜欢 ruby​​,而且 ruby​​ 代码的大小几乎是生成的 js 的一半,但我偏离了轨道。

所以模板是你的“vue 注释”rails 模板。小代码也进入 Rails 模板。可以在资产中定义更多代码并从应用程序中引用。甚至可以使用 x-template 语法将组件写入模板。

最后但并非最不重要的一点是:数据可以通过 to_json 直接传输到模板中。并且在同一个渲染中。比附加查询快得多。当 to_json 不够时,可以使用 rabl 来准确获取所需的内容。

我希望我说清楚了。我正在写一些 vue-rails 的东西,因为能找到的东西太少了。请注意这里(帖子准备好后我会发表评论)