Replies: 1 comment
-
Here are my inputs since I managed to have rails_admin working with propshaft + dartsass-rails. ImportmapsI used importmaps to deal with javascript files. That's default in Rails 8 and rails_admin generates an importmap.rails_admin.rb file that works. So the javascript part is solved already. StylesheetsThe application.scss.erb file cannot be managed by propshaft + dartsass-rails so this has to be changed into a simpler "application.scss" file. The erb extension is used only to exclude trix CSS. In my opinion that can also be removed and we simply, always, include trix CSS. After that I had to instruct dartsass-rails to build it. I created // app/assets/stylesheets/rails_admin.scss
@import "rails_admin/application"; and added it to the list of dartsass-rails builds: # app/initializers/dartsass.rb
@@ -0,0 +1,4 @@
Rails.application.config.dartsass.builds = {
"application.scss" => "application.css",
"rails_admin.scss" => "rails_admin/application.css"
} so the <% when :propshaft %>
<%= stylesheet_link_tag "rails_admin/application.css", media: :all, data: { 'turbo-track': 'reload' } %>
<%= javascript_inline_importmap_tag(RailsAdmin::Engine.importmap.to_json(resolver: self)) %>
<%= javascript_importmap_module_preload_tags(RailsAdmin::Engine.importmap) %>
<%= javascript_importmap_shim_nonce_configuration_tag if respond_to? :javascript_importmap_shim_nonce_configuration_tag %>
<%= javascript_importmap_shim_tag if respond_to? :javascript_importmap_shim_tag %>
<%= # Preload jQuery and make it global, unless jQuery UI fails to initialize
tag.script "import jQuery from 'jquery'; window.jQuery = jQuery;".html_safe, type: "module" %>
<%= javascript_import_module_tag 'rails_admin' %> finally also the engine has been adapted: when :propshaft
app.config.assets.precompile += %w[
rails_admin/application.js
rails_admin/application.css
]
app.config.assets.paths << RailsAdmin::Engine.root.join('src')
self.importmap = Importmap::Map.new.draw(app.root.join('config/importmap.rails_admin.rb')) this seemed to me too much adaptation and customization to make it work when sprockets simply works out-of-the-box |
Beta Was this translation helpful? Give feedback.
-
I worked for replacing sprockets in my projects, let me know what you think is enable propshaft capability - I'll create a draft PR
Beta Was this translation helpful? Give feedback.
All reactions