【问题标题】:What is the pros and cons of using Rails asset pipeline vs. webpack to hold assets?使用 Rails 资产管道与使用 webpack 保存资产的优缺点是什么?
【发布时间】:2018-01-11 18:29:30
【问题描述】:

来自webpacker gem

Webpacker 让使用 JavaScript 预处理器和 bundler Webpack 2.x.x+ 用于在 Rails 中管理类似应用程序的 JavaScript。 它与资产管道共存,作为主要目的 Webpack 是类似应用程序的 JavaScript,而不是图像、CSS 甚至 JavaScript Sprinkles(所有这些都继续存在于应用程序/资产中)。

但是,可以将 Webpacker 用于 CSS、图像和字体 资产也是如此,在这种情况下,您甚至可能不需要资产 管道。这在专门使用时最相关 基于组件的 JavaScript 框架。

为什么基于组件的框架使用 Webpacker 处理资产更相关?如果我使用 React,从资产管道与 Webpack 获取资产有什么区别?

【问题讨论】:

    标签: javascript ruby-on-rails reactjs webpack asset-pipeline


    【解决方案1】:

    严格持有资产而言——我认为没有太大区别。但是,我最近将我们的一个应用程序从资产管道迁移到了 webpack - 我将尝试在下面分享一些关于为什么 webpack 有益的经验。

    • 尽管 Rails 是一个快速发展的动态 Web 框架,但使用最新的前端工具和默认的 Rails 资产处理程序是很困难的。使用 bundler 管理 JS 库是一件很痛苦的事情。 Webpack 使维护 3rd 方库变得相当容易。
    • 考虑到它在每次刷新期间默认编译文件,使用 webpack 加载页面比使用默认资产管道更快。
    • Rails 目录结构无法清楚地区分应用程序的前端和后端。单页应用程序的出现意味着将应用程序的客户端识别为一个单独的实体,而不是后端的某个插件,这是我们认为非常重要的事情。前端组件不仅仅是插件。他们是他们自己的生命。
    • 将资产与视图分开很奇怪 - 视图和资产创造了一个存在,并且应该放在一个地方,Rails 视图更像是控制器上的一个背包。
    • 我们的应用程序前端的热重载非常棒。这节省了大量的开发时间。

    然而

    • 我们发现它可能会随着不断的配置更改而不稳定,因此不友好。
    • 它不会像 sprockets 那样根据请求自动运行。例如,如果您使用的是 webpacker,则需要运行 webpacker 开发服务器,该服务器首先查找文件更改,然后编译,然后才可以重新加载您的页面。

    事实上,webpack 主要关注的是 js 而不是 jpegs、pngs、svgs 等,这使得比较 rails 资产管道和 webpack 有点混乱......

    不确定是否有,但我希望这会有所帮助!

    【讨论】:

    • 不错的总结。如果您在 webpacker.yml 开发设置中设置了 compile: true,Webpacker 会自动重新加载更改。虽然速度有点慢。
    猜你喜欢
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多