Skip to content

Commit 3e768cd

Browse files
authored
Fix running "rails new --css bootstrap" on 7.1 (#147)
Rails 7.1 included a [change][1] to allow using importmaps along with all cssbundling options. However, the Bootstrap installer was never updated to take this new default into effect (and is currently broken because of this). This commit adds the additional configuration required to use the Bootstrap npm package with importmaps so that "rails new" generates an application that runs without errors. [1]: rails/rails@84458a8
1 parent 9075819 commit 3e768cd

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

lib/install/bootstrap/install.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,19 @@
2121
say %(Add import * as bootstrap from "bootstrap" to your entry point JavaScript file), :red
2222
end
2323

24+
if Rails.root.join("config/importmap.rb").exist?
25+
say "Pin Bootstrap"
26+
append_to_file "config/importmap.rb", %(pin "bootstrap", to: "bootstrap.min.js"\n)
27+
28+
inject_into_file "config/initializers/assets.rb", after: /.*Rails.application.config.assets.paths.*\n/ do
29+
<<~RUBY
30+
Rails.application.config.assets.paths << Rails.root.join("node_modules/bootstrap/dist/js")
31+
RUBY
32+
end
33+
34+
append_to_file "config/initializers/assets.rb", %(Rails.application.config.assets.precompile << "bootstrap.min.js")
35+
end
36+
2437
add_package_json_script("build:css:compile", "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules")
2538
add_package_json_script("build:css:prefix", "postcss ./app/assets/builds/application.css --use=autoprefixer --output=./app/assets/builds/application.css")
2639
add_package_json_script("build:css", "#{bundler_run_cmd} build:css:compile && #{bundler_run_cmd} build:css:prefix")

0 commit comments

Comments
 (0)