Setting up Hotwire on Rails
I’ve had some troubles setting up Hotwire on a new Rails app, these are my findings.
Initial setup
Add to your gemfile
gem 'hotwire-rails'
This includes turbo-rails and stimulus-rails and will not work if you don’t have sprockets. If you created your rails app with the --skip-sprokets options you will have to readd them.
Run the automatic setup:
./bin/rails hotwire:install
This will create a few files, enable the redis gem and add turbo-rails and stimulus to your package.json file.
Stimulus troubles
The first javascript errors show up:
Uncaught Error: Cannot find module 'controllers'
It is discussed here. You can fix it by running
./bin/rails webpacker:install:stimulus
This will add the missing app/javascripts/controllers/index.js file. Once that is done, stimulus should be fine.
Turbo
If your application.js has
import "@hotwired/turbo-rails"
Then you should be alright.