34

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

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

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

4

2 回答 2

44

我发现这个链接很有帮助,我会在这里交叉发布:

生成新应用时使用选项 --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

如果您使用的是 sprockets 4,请更改app/assets/config/manifest.js为:

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

如果您使用的是 sprockets 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 .

更改javascript_pack_tagjavascript_include_tag_app/views/layout/application.html.erb

于 2019-10-23T08:38:54.650 回答
15

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

本参考文献所述

于 2019-03-18T02:16:12.990 回答