Rails 6:如何禁用 Webpack 并改用 Sprockets

Rails 6: How to disable Webpack and use Sprockets instead

我正在将 ActionMailbox、ActionText 和多个数据库的 Rails 5.2 应用程序迁移到 6.0。但是,我不知道 webpack,而是想使用 Sprockets。

如何从 Rails 6 中正确删除 webpack 并安装 Sprockets? rails new app 立即安装 webpack 文件。有没有办法轻松默认链轮?

Rails (Ruby) 应该是 约定优于配置 ,但是 Webpack (Javascript) 通过添加大量配置和复杂性来取消它。

如果您想在生成新的 rails 应用程序时跳过添加 webpacker gem,请使用 --skip-javascript(因为 Webpacker 是 JavaScript 的默认编译器 Rails 6).

this reference

所述

我发现 this link 有帮助,我会在这里交叉发布:

生成新应用时使用选项 --skip-webpack-install

更改 Gemfile,删除 webpacker,添加:

gem 'sass-rails', '>= 5'
gem 'sprockets', '~> 4'
gem 'sprockets-rails', :require => 'sprockets/railtie'

然后

bundle update sass-rails sprockets # if you are updating 
bundle install # or simply install

如果您使用链轮 4,请将 app/assets/config/manifest.js 更改为:

//= link_tree ../images
//= link application.js
//= link application.css

如果您使用链轮 3,请添加到 config/initializers/assets.rb

# Rails.application.config.assets.precompile += %w( application.js )

恢复 app/assets/javascripts/application.js:

//= require rails-ujs
//= require turbolinks
//= require_tree .

app/views/layout/application.html.erb

中将javascript_pack_tag更改为javascript_include_tag