web-dev-qa-db-fra.com

Rails 6: Comment désactiver Webpack et utiliser à la place Sprockets

Je migre une application Rails 5.2 vers 6.0 pour ActionMailbox, ActionText et plusieurs bases de données. Cependant, je ne connais pas le webpack et j'aimerais utiliser Sprockets à la place.

Comment supprimer correctement le webpack de Rails 6 et installer Sprockets? Rails new app installe les fichiers webpack immédiatement. Existe-t-il un moyen de par défaut pour les pignons facilement?

Rails ( Ruby ) était censé être convention sur la configuration, mais Webpack ( Javascript ) annule cela en ajoutant beaucoup de configuration et de complexité.

16
Jun Dalisay

Si vous souhaitez ignorer l'ajout de gem Webpacker lors de la génération d'une nouvelle application Rails, utilisez --skip-javascript (puisque Webpacker est le compilateur JavaScript par défaut pour Rails 6).

comme indiqué dans cette référence

6
widjajayd

J'ai trouvé ce lien utile, je vais transposer ici:

Utilisez l'option --skip-webpack-install lors de la génération d'une nouvelle application

Modifiez Gemfile, supprimez webpacker, ajoutez:

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

Ensuite

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

Si vous utilisez des pignons 4, modifiez app/assets/config/manifest.js à:

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

Si vous utilisez des pignons 3, ajoutez à config/initializers/assets.rb:

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

Restaurer app/assets/javascripts/application.js:

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

Changement javascript_pack_tag à javascript_include_tag dans app/views/layout/application.html.erb

18
eikes