- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在构建单页(Web)应用程序。我非常喜欢 Rails v5.0,尤其是它内置的 API 功能。
过去,我使用 Vue.js
构建 JavaScript 前端,通常使用 Vue-CLI 项目
提供的模板。这允许基本上在任何地方部署 Vue component-based
静态站点。太棒了。
现在,Rails 5.1
具有一些看起来也非常引人注目的内置 Webpack 和 Yarn 功能。我不确定如何继续我的新申请。
我的问题:
- What are the pros/cons of integrating Webpack and Vue into Rails itself, using the Webpacker extensions available in Rails v5.1? I intend to deploy to Heroku.
- On the other hand, what are the pros/cons of using the Rails API-only mode for the backend, and maintaning the Vue/Webpack-based frontend in its own directory? I'd keep everything in the same repository, deploy the backend via Heroku, and the frontend via a static host like Netlify.
- Which approach would have more cognitive overhead or technical complexity?
这几天一直在四处寻找,并没有在网上找到太多关于这方面的简明资料。人们似乎对 Rails 开发环境的自动重新加载功能很感兴趣,但我已经通过 Vue-CLI 免费获得了它。
据我所知,这些是将它们分开的原因:
- Deployment of the frontend is pretty darn simple to anywhere.
- The Webpacker mode for Rails is very new, and not many tutorials or guides exist yet, especially regarding integration testing. Keeping things separate means that my existing testing apparatus should still apply.
以下是将这两个部分集成在一起的一些优点:
- The possibility of using static assets both for the frontend and possibly for server-generated pages in the future, should that be necessary.
- Buy-in to "the Rails way", with implied future maintenance by the Rails team.
- the JS Frontend would not need to be hosted separately.
- Don't need to worry about CORS (?)
这两种方法还有哪些其他具体优势?
最佳答案
当我开始时,我采用了 webpacker 的方式,不知何故,因为它看起来像是“应该”的样子。正如你所说,指导很少。Webpacker(依赖于 最新 节点)似乎是一个移动的目标,使部署甚至开发变得更加复杂。为了什么好处我问并摆脱了它。
现在我使用 vue from the cdn .好处:
我将应用程序代码写入 Rails 模板。使用haml,实际上是ruby2js , 但你可以使用 javascript 就好了。我就是这样开始的,但我喜欢 ruby,而且 ruby 代码几乎是生成的 js 的一半大小,但我偏离了 rails 。
因此模板是您的“vue 注释”rails 模板。小代码也进入 rails 模板。可以在 Assets 中定义更多代码并从应用程序中引用。甚至可以使用 x-template 语法将组件写入模板。
最后但同样重要的是:数据可以通过 to_json 直接传输到模板中。并在同一个渲染中。比附加查询快得多。当 to_json 不够时,可以使用 rabl 来准确获取所需内容。
希望我说清楚了。我正在写一些 vue-rails 的东西,因为找不到什么。留心here (我会在帖子准备好后发表评论)
关于ruby-on-rails - Rails Webpacker 还是 Vue-CLI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47943841/
像这样的webpack.config.js文件可以导出多个配置: module.exports = [{entry: 'a.js'}, {entry: 'b.js'}]; 当我调用 webpack 时
我正在尝试在 webpack 配置文件中设置 browserslist,但不知道如何执行此操作。 在 webpack.config 中尝试了以下内容: 'use strict'; module.exp
If you are using webpack v5 or above you do not need to install this plugin. Webpack v5 comes with t
使用webpack 2时,为什么需要以相反的顺序为“use:”键添加加载程序?为什么不从头到尾,从左到右列出每个加载器?有什么理由吗? 最佳答案 看起来像是一种约定,它很容易成为匹配执行顺序和源顺序的
当我 web pack 的时候 --watch --config webpack.production.config.js --mode production 我有这个错误: ERROR in Typ
我有一个使用 Twig 进行模板的项目。其中的所有数据都是静态的,但为了清楚起见,我已经在其他 Twig 文件中分离出部分页面(否则一个文件中会有数百行标记)。 我使用 webpack 作为构建工具,
我使用 cli 创建了一个 vue.js 项目。我使用了 webpack 模板。我已经为此工作了几天,并且工作顺利。 现在我需要向项目添加一个 npm 包。这个包建议我对 webpack 配置进行一些
我正在使用运行“node_modules/.bin/webpack”,但我知道可以配置路径以便您只需键入“webpack ”。不过,我找不到方法。 :/ 最佳答案 如果你安装一个包 globally
我正在服务器渲染我的 react 应用程序,如下所示: export default ({ clientStats }: { clientStats: any }) => async (req: Re
我试过包含一个通配符,它破坏了构建;和多个 favicon字段条目,它只使用最后一个输入。我如何支持使用此插件包含多个网站图标文件? 最佳答案 您还需要包括 favicons-webpack-pl
我正在使用 webpack 编译我的 Reactjs 文件。在我的项目中,我需要对后端进行 API 调用。 现在我有 3 个环境,分别是本地环境、开发环境和生产环境。 所以我有一个constants.
我正在将所有文件构建到“dist”文件夹中。 Dist ->index.html ->bundle.js 我已将配置设置为在我需要的特定端口上运行。 { entry: './src/ind
我想使用由 Closure Compiler 使用 Webpack 生成的 SourceMap,但我不知道该怎么做。 这是我的 webpack 配置: const ClosureCompiler =
有没有办法接收当前文件路径,就像在 requirejs 中一样? define(['module'], function (module) { console.log(module.uri)
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我是 webpack 的初学者用户。我想写一个webpack.config.js建立我的项目。但是有什么不对的地方! 这是我的 package.json (已安装所有依赖项): { "name":
我从这里开始:https://github.com/vuejs/vue-cli 我不确定它是否使用 Webpack。 包含/使用 webpack 的项目将包含哪些文件? 最佳答案 如果您的项目正在使用
Webpack,你将要了我的命。 html-webpack-plugin 在生产中运行良好。 'dist' 文件夹加载了我的 html 模板和插入的包。好酷。 但是,webpack-dev-serve
想象一下我有一个这样的项目: /moduleA/src... /moduleB/src... /mainApp/src... 每个模块和主应用程序都有一个单独的 webpack.config。模块是库
根据 webpack 文档,我尝试将 UglifyJSPlugin 添加到 webpack 4 项目中,但我仍然在我的包中看到死代码甚至注释,这让我认为我的 uglify 插件配置没有被使用。 Lin
我是一名优秀的程序员,十分优秀!