是否可以/建议在没有 webpack(er) 的情况下运行 Rails 6?

chr*_*sma 0 ruby ruby-on-rails webpack rails-sprockets

我正在启动一个新的 Rails 6 应用程序。如果我理解正确的话,Webpack(er) ( gem webpacker) 已经取代了 Sprockets 作为包含/缩小 JS ( source )的新标准。此外,Rails 6 现在都需要Node.js 和 Yarn

我是否正确地假设 Node.js 和 Yarn 依赖项仅仅是由于包含了 Webpack,或者 Rails 6 的其他组件也需要它们?

从 Rails 6 应用程序中删除 Webpack 和 Node 和 Yarn 并继续使用 Rails Asset Pipeline(除了缺少 Webpack 功能)是否有任何可能的缺点?

chr*_*sma 5

可以在没有webpackergem、Node.js 和 Yarn的情况下运行 Rails 6 (请参阅此 Rails 问题)。

但是,该--skip-webpack-install选项Rails new仍然包含webpackerGemfile 中的 gem 并使用 webpacker 配置设置生成的项目(仅rails webpacker:install不运行)。

如果要使用使用链轮的 Rails 资产管道,建议使用该--skip-javascript选项并且需要手动更改,特别是:

  • 添加<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>/app/views/layouts/application.html.erb
  • 创建/app/assets/javascripts/application.js(内容,例如此处
  • 添加//= link_directory ../javascripts .jsapp/assets/config/manifest.js