在没有webpacker的情况下是否可以/建议运行Rails 6?

问题描述

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

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

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

解决方法

是的,您可以从Gemfile中删除gem,删除创建的node_modules文件夹和package.json文件。

在那之后,运行包清理Gemfile.lock并使用常规视图和模板以旧方式开始编码。提及您,您将不得不添加像Google V8这样的js引擎。

实际上,不需要webpacker和node即可运行Rails 6应用程序。

,

可以在没有webpacker gem,Node.js和Yarn的情况下运行Rails 6(请参阅this Rails issue)。

但是,--skip-webpack-install的{​​{1}}选项仍包含Gemfile中的Rails new gem并使用webpacker配置设置生成的项目(仅运行webpacker

如果要使用使用链轮的Rails资产管道,则rails webpacker:install选项is recommended和手动更改是必要的,尤其是:

  • --skip-javascript添加到<%= javascript_include_tag 'application','data-turbolinks-track': 'reload' %>
  • 创建/app/views/layouts/application.html.erb(内容,例如here
  • /app/assets/javascripts/application.js添加到//= link_directory ../javascripts .js

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...