|
| 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