Sha256: 76b3962890d24ad5c09bb8a4cb46cbdaf27252ca8e02e51401d45d4fd8e56517
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb") if APPLICATION_LAYOUT_PATH.exist? say "Add Importmap include tags in application layout" insert_into_file APPLICATION_LAYOUT_PATH.to_s, "\n <%= javascript_importmap_tags %>", before: /\s*<\/head>/ else say "Default application.html.erb is missing!", :red say " Add <%= javascript_importmap_tags %> within the <head> tag in your custom layout." end say "Create application.js module as entrypoint" create_file Rails.root.join("app/assets/javascripts/application.js") do <<-JS // import "@rails/actioncable" // import "@rails/actiontext" // import "@rails/activestorage" JS end say "Ensure JavaScript files are in the asset pipeline manifest" append_to_file Rails.root.join("app/assets/config/manifest.js"), %(//= link_tree ../javascripts) say "Configure importmap paths in config/initializers/assets.rb" append_to_file Rails.root.join("config/initializers/assets.rb") do <<-RUBY # Configure importmap paths in addition to having all files in app/assets/javascripts mapped. Rails.application.config.importmap.paths do |paths| # Match libraries with their NPM package names for possibility of easy later porting. # Ensure that libraries listed in the path have been linked in the asset pipeline manifest or precompiled. paths.asset "@rails/actioncable", path: "actioncable.esm.js" paths.asset "@rails/actiontext", path: "actiontext.js" paths.asset "@rails/activestorage", path: "activestorage.esm.js" # Make all files in directory available as my_channel => channels/my_channel-$digest.js # paths.assets_in "lib/assets/javascripts/channels", append_base_path: true end RUBY end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
importmap-rails-0.1.1 | lib/install/install.rb |
importmap-rails-0.1.0 | lib/install/install.rb |