是 possible/advisable 到 运行 Rails 6 没有 webpack(er) 吗?
Is it possible/advisable to run Rails 6 without webpack(er)?
我正在开始一个新的 Rails 6 应用程序。如果我理解正确的话,Webpack(er) (gem webpacker
) 已经取代 Sprockets 作为 including/minifying JS (source) 的新标准。
此外,Rails 6 现在都需要 Node.js and Yarn.
我假设 Node.js 和 Yarn 依赖项只是由于包含 Webpack,或者 Rails 6 的其他组件也需要它们吗?
从 Rails 6 应用程序中删除 Webpack 和 Node 和 Yarn 并继续使用 Rails 资产管道(除了缺少 Webpack 功能)是否有任何可能的缺点?
是的,您可以从 Gemfile 中删除 gem,删除创建的 node_modules 文件夹和 package.json 文件。
之后 运行 捆绑清理 Gemfile.lock 并使用普通视图和模板以旧方式启动代码。请注意,您必须添加 js 引擎,例如 Google V8.
事实上 运行 rails 6 应用程序不需要 webpacker 和 node。
可以 运行 Rails 6 没有 webpacker
gem、Node.js 和 Yarn(参见 this Rails issue)。
然而,Rails new
的 --skip-webpack-install
选项仍然包含 Gemfile 中的 webpacker
gem 并使用 webpacker 配置设置生成的项目(仅 rails webpacker:install
不是 运行).
如果要使用 Rails 使用 Sprockets 的资产管道,则需要 --skip-javascript
选项 is recommended 和手动更改,特别是:
- 将
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
添加到 /app/views/layouts/application.html.erb
- 创建
/app/assets/javascripts/application.js
(内容,例如here)
- 将
//= link_directory ../javascripts .js
添加到 app/assets/config/manifest.js
我正在开始一个新的 Rails 6 应用程序。如果我理解正确的话,Webpack(er) (gem webpacker
) 已经取代 Sprockets 作为 including/minifying JS (source) 的新标准。
此外,Rails 6 现在都需要 Node.js and Yarn.
我假设 Node.js 和 Yarn 依赖项只是由于包含 Webpack,或者 Rails 6 的其他组件也需要它们吗?
从 Rails 6 应用程序中删除 Webpack 和 Node 和 Yarn 并继续使用 Rails 资产管道(除了缺少 Webpack 功能)是否有任何可能的缺点?
是的,您可以从 Gemfile 中删除 gem,删除创建的 node_modules 文件夹和 package.json 文件。
之后 运行 捆绑清理 Gemfile.lock 并使用普通视图和模板以旧方式启动代码。请注意,您必须添加 js 引擎,例如 Google V8.
事实上 运行 rails 6 应用程序不需要 webpacker 和 node。
可以 运行 Rails 6 没有 webpacker
gem、Node.js 和 Yarn(参见 this Rails issue)。
然而,Rails new
的 --skip-webpack-install
选项仍然包含 Gemfile 中的 webpacker
gem 并使用 webpacker 配置设置生成的项目(仅 rails webpacker:install
不是 运行).
如果要使用 Rails 使用 Sprockets 的资产管道,则需要 --skip-javascript
选项 is recommended 和手动更改,特别是:
- 将
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
添加到/app/views/layouts/application.html.erb
- 创建
/app/assets/javascripts/application.js
(内容,例如here) - 将
//= link_directory ../javascripts .js
添加到app/assets/config/manifest.js