Bootstrap 4.6.0 & Hotwire With Webpacker
Add Bootstrap 4.6.0 and Turbo/Hotwire to your Rails app using Webpacker with this app template.
Used 15 times
d
dchuk
Usage
Run this command in your Rails app directory in the terminal:
rails app:template LOCATION="https://railsbytes.com/script/xkjsYO"
Template Source
Review the code before running this template on your machine.
def yarn(*packages)
run("yarn add #{packages.join(" ")}")
end
yarn 'jquery', 'popper.js', '@popperjs/core', 'bootstrap@^4.6.0'
inject_into_file 'config/webpack/environment.js', after: "const { environment } = require('@rails/webpacker')\n" do <<~EOF
const webpack = require('webpack')
environment.plugins.append('Provide', new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
Popper: ['popper.js', 'default']
}))
EOF
end
inject_into_file 'app/views/layouts/application.html.erb', before: '</head>' do <<~EOF
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbo-track': 'reload' %>
EOF
end
inject_into_file 'app/javascript/packs/application.js' do <<~EOF
import 'bootstrap/dist/js/bootstrap'
import 'bootstrap/dist/css/bootstrap'
EOF
end
run "bundle add turbo-rails"
run "bundle install"
run "bin/rails turbo:install"