web-dev-qa-db-ja.com

Rails 6:Webpackを無効にし、代わりにSprocketsを使用する方法

ActionMailbox、ActionText、および複数のデータベースでRails 5.2アプリを6.0に移行しています。ただし、webpackがわからないため、代わりにSprocketsを使用したいと考えています。

Rails 6からwebpackを適切に削除してSprocketsをインストールするには?Rails new appはすぐにwebpackファイルをインストールします。デフォルトでスプロケットを簡単に設定する方法はありますか?

Rails(Ruby)はconvention over configurationであるはずでしたが、Webpack(Javascript )これは、多くの設定と複雑さを追加することでこれをキャンセルします。

16
Jun Dalisay

新しいRailsアプリケーションの生成時にwebpacker gemの追加をスキップする場合は、-skip-javascriptを使用します(WebpackerはRails 6のデフォルトのJavaScriptコンパイラーであるため)。

この参照 から注記したように

6
widjajayd

私は このリンク を見つけました、ここでクロスポストします:

新しいアプリを生成するときにオプション--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 .

javascript_pack_tagjavascript_include_tagapp/views/layout/application.html.erbに変更します

18
eikes