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

时间:2019-03-18 02:06:07

标签: ruby-on-rails rails-sprockets

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

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

Rails( Ruby )应该是常规配置,但是Webpack( Javascript )通过添加大量配置取消了此操作,复杂性。

2 个答案:

答案 0 :(得分:6)

我发现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_directory ../javascripts .js

如果您使用链轮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_tag中的javascript_include_tag更改为app/views/layout/application.html.erb

答案 1 :(得分:1)

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

this reference

所述