我正在启动一个新的Rails 6应用程序。如果我理解正确的话,Webpack(er((gem webpacker
(已经取代Sprockets成为包含/缩小JS(源代码(的新标准。此外,Rails6现在同时需要Node.js和Yarn。
我认为Node.js和Yarn依赖关系只是由于包含了Webpack,或者Rails6的其他组件也需要它们,这是正确的吗?
从Rails 6应用程序中删除Webpack、Node和Yarn并继续使用Rails资产管道(除了缺少Webpack功能之外(是否有任何可能的缺点?
在没有webpacker
-gem、Node.js和Yarn的情况下运行Rails 6是可能的(请参阅本期Rails文章(。
然而,Rails new
的--skip-webpack-install
选项仍然在Gemfile中包括webpacker
gem,并使用webpacker配置设置生成的项目(只有rails webpacker:install
未运行(。
如果要使用使用Sprockets的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 .js
添加到app/assets/config/manifest.js
是的,您可以从Gemfile中删除gems,删除创建的node_modules文件夹和package.json文件。
之后,运行捆绑包来清理Gemfile.lock,并使用普通视图和模板以旧的方式启动代码。提到,你将不得不添加像谷歌V8这样的js引擎。
事实上,运行rails 6应用程序不需要webpacker和node。