|
| 1 | +require_relative "../helpers" |
| 2 | +self.extend Helpers |
| 3 | + |
1 | 4 | say "Install Bootstrap with Bootstrap Icons, Popperjs/core and Autoprefixer" |
2 | 5 | copy_file "#{__dir__}/application.bootstrap.scss", |
3 | 6 | "app/assets/stylesheets/application.bootstrap.scss" |
4 | | -run "yarn add sass bootstrap bootstrap-icons @popperjs/core postcss postcss-cli autoprefixer nodemon" |
| 7 | +run "#{bundler_cmd} add sass bootstrap bootstrap-icons @popperjs/core postcss postcss-cli autoprefixer nodemon" |
5 | 8 |
|
6 | 9 | inject_into_file "config/initializers/assets.rb", after: /.*Rails.application.config.assets.paths.*\n/ do |
7 | 10 | <<~RUBY |
|
16 | 19 | say %(Add import * as bootstrap from "bootstrap" to your entry point JavaScript file), :red |
17 | 20 | end |
18 | 21 |
|
19 | | -def add_npm_script(name, script, run_script=true) |
20 | | - case `npx -v`.to_f |
21 | | - when 7.1...8.0 |
22 | | - say "Add #{name} script" |
23 | | - run %(npm set-script #{name} "#{script}") |
24 | | - run %(yarn #{name}) if run_script |
25 | | - when (8.0..) |
26 | | - say "Add #{name} script" |
27 | | - run %(npm pkg set scripts.#{name}="#{script}") |
28 | | - run %(yarn #{name}) if run_script |
29 | | - else |
30 | | - say %(Add "scripts": { "#{name}": "#{script}" } to your package.json), :green |
31 | | - end |
32 | | -end |
33 | | - |
34 | | -add_npm_script("build:css:compile", "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules") |
35 | | -add_npm_script("build:css:prefix", "postcss ./app/assets/builds/application.css --use=autoprefixer --output=./app/assets/builds/application.css") |
36 | | -add_npm_script("build:css", "yarn build:css:compile && yarn build:css:prefix") |
37 | | -add_npm_script("watch:css", "nodemon --watch ./app/assets/stylesheets/ --ext scss --exec \\\"yarn build:css\\\"", false) |
| 22 | +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") |
| 23 | +add_package_json_script("build:css:prefix", "postcss ./app/assets/builds/application.css --use=autoprefixer --output=./app/assets/builds/application.css") |
| 24 | +add_package_json_script("build:css", "#{bundler_run_cmd} build:css:compile && #{bundler_run_cmd} build:css:prefix") |
| 25 | +add_package_json_script("watch:css", "nodemon --watch ./app/assets/stylesheets/ --ext scss --exec \"#{bundler_run_cmd} build:css\"", false) |
38 | 26 |
|
39 | 27 | gsub_file "Procfile.dev", "build:css --watch", "watch:css" |
40 | 28 |
|
41 | | -case `npx -v`.to_f |
42 | | -when (7.1..) |
43 | | - say "Add browserslist config" |
44 | | - run %(npm pkg set browserslist[]=defaults) |
45 | | -else |
46 | | - say %(Add "browserslist": ["defaults"] to your package.json), :green |
47 | | -end |
| 29 | +package_json = JSON.parse(File.read("package.json")) |
| 30 | +package_json["browserslist"] ||= {} |
| 31 | +package_json["browserslist"] = ["defaults"] |
| 32 | +File.write("package.json", JSON.pretty_generate(package_json)) |
0 commit comments