3

我正在启动一个新的 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 资产管道(除了缺少 Webpack 功能)是否有任何可能的缺点?

4

2 回答 2

6

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

但是,--skip-webpack-install选项Rails new仍然webpacker在 Gemfile 中包含 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 .jsapp/assets/config/manifest.js
于 2020-10-23T09:25:42.010 回答
3

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

之后运行 bundle 清理 Gemfile.lock 并使用普通视图和模板以旧方式启动代码。提一下,您将不得不添加像 Google V8 这样的 js 引擎。

事实上,运行 rails 6 应用程序不需要 webpacker 和 node。

于 2020-10-21T20:01:10.587 回答