How do I find out why Stimulus controllers aren't getting compiled? Asset Pipeline problem
I updated a Rails 6 app to Rails 7 and changed from Webpacker to esbuild/webpack. Added Stimulus, and after not getting controllers to work tried a basic hello_controller and then searched the application.js as seen in Chrome and no 'hello' or "Hello" I made a basic app to compare. I've toggled many settings and don't know where to look.
webpack.config.js
are identical. hello_controller.js is identical.
Beginning of Gemfile:
ruby '3.0.2'
gem "rails", "~> 7.0.4"
gem "sprockets-rails"
gem 'sassc-rails', '>= 2.0.1'
gem 'jsbundling-rails'
gem "cssbundling-rails", "~> 1.1"
gem 'turbo-rails'
gem 'stimulus-rails'
gem 'puma', "~> 5.0"
gem 'pg'
package.json
{
"license": "ISC",
"main": "application.js",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.12.1",
"@hotwired/stimulus": "^3.1.1",
"@hotwired/turbo-rails": "^7.0.0-rc.1",
"@popperjs/core": "^2.11.6",
"@rails/actiontext": "^6.0.0",
"@rails/ujs": "^6.0.1",
"bootstrap": "^5.2.2",
"bootstrap-icons": "^1.10.2",
"exiftool": "^0.0.3",
"imports-loader": "^0.8.0",
"jquery": "^3.4.1",
"jqueryui": "^1.11.1",
"leaflet": "^1.7.1",
"leaflet.timeline": "1.3.0",
"lodash": "^4.17.15",
"mapbox": "^1.0.0-beta10",
"ol": "^7.1.0",
"ol-ext": "^4.0.4",
"ol-layerswitcher": "^4.1.0",
"ol-loupe": "^1.0.1",
"ol-popup": "^5.0.0",
"rails-erb-loader": "^5.5.2",
"sass": "^1.56.1",
"stimulus": "^3.1.1",
"trix": "^1.0.0",
"webpack": "^5.75.0"
},
"devDependencies": {
"@prettier/plugin-ruby": "^0.22.0",
"prettier": "^2.2.1",
"webpack-cli": "^5.0.0"
},
"scripts": {
"build": "webpack --config ./webpack.config.js",
"build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules"
}
}
command line server launch without timestamp
➜ bd
web.1 | started with pid 35879
js.1 | started with pid 35880
css.1 | started with pid 35881
js.1 | yarn run v1.22.19
css.1 | yarn run v1.22.19
js.1 | $ webpack --config ./webpack.config.js --watch
css.1 | $ sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules --watch
css.1 | Sass is watching for changes. Press Ctrl-C to stop.
css.1 |
web.1 | => Booting Puma
web.1 | => Rails 7.0.4 application starting in development
web.1 | => Run `bin/rails server --help` for more startup options
web.1 | Puma starting in single mode...
web.1 | * Puma version: 5.6.5 (ruby 3.0.2-p107) ("Birdie's Version")
web.1 | * Min threads: 5
web.1 | * Max threads: 5
web.1 | * Environment: development
web.1 | * PID: 35879
web.1 | * Listening on http://127.0.0.1:3000
web.1 | * Listening on http://[::1]:3000
web.1 | Use Ctrl-C to stop
js.1 | asset application.js 503 KiB [compared for emit] [minimized] [big] (name: application) 1 related asset
js.1 | orphan modules 2.58 MiB [orphan] 342 modules
js.1 | runtime modules 997 bytes 4 modules
js.1 | cacheable modules 1.75 MiB
js.1 | modules by path ./node_modules/ol/ 109 KiB
js.1 | modules by path ./node_modules/ol/*.js 74.9 KiB 18 modules
js.1 | modules by path ./node_modules/ol/layer/*.js 22.2 KiB 3 modules
js.1 | modules by path ./node_modules/ol/events/*.js 7.39 KiB
js.1 | ./node_modules/ol/events/Event.js 1.46 KiB [built] [code generated]
js.1 | + 2 modules
js.1 | ./node_modules/ol/control/Control.js 4.44 KiB [built] [code generated]
js.1 | ./node_modules/ol/extent/Relationship.js 200 bytes [built] [code generated]
js.1 | ./app/javascript/application.js + 224 modules 1.59 MiB [built] [code generated]
js.1 | ./node_modules/ol-layerswitcher/dist/ol-layerswitcher.js 23.5 KiB [built] [code generated]
js.1 | ./node_modules/@rails/actioncable/src/index.js + 9 modules 19.1 KiB [built] [code generated]
js.1 | ./node_modules/rbush/rbush.min.js 6.31 KiB [built] [code generated]
js.1 |
js.1 | WARNING in configuration
js.1 | The value 'hashed' for option 'optimization.moduleIds' is deprecated. Use 'deterministic' instead.
js.1 |
js.1 | WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
js.1 | This can impact web performance.
js.1 | Assets:
js.1 | application.js (503 KiB)
js.1 |
js.1 | WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
js.1 | Entrypoints:
js.1 | application (503 KiB)
js.1 | application.js
js.1 |
js.1 | WARNING in webpack performance recommendations:
js.1 | You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
js.1 | For more info visit https://webpack.js.org/guides/code-splitting/
js.1 |
js.1 | webpack 5.75.0 compiled with 4 warnings in 2885 ms
web.1 | Started GET "/" for ::1 at 2022-11-26 17:43:46 -0800
web.1 | ActiveRecord::SchemaMigration Pluck (1.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
web.1 | Processing by StaticPagesController#home as HTML
web.1 | Rendering layout layouts/application.html.erb
web.1 | Rendering static_pages/home.html.erb within layouts/application
web.1 | Rendered static_pages/home.html.erb within layouts/application (Duration: 1.1ms | Allocations: 1462)
web.1 | Rendered layouts/_header.html.erb (Duration: 2.7ms | Allocations: 4997)
web.1 | Rendered layouts/_footer.html.erb (Duration: 0.6ms | Allocations: 556)
web.1 | Rendered layout layouts/application.html.erb (Duration: 7.0ms | Allocations: 9376)
web.1 | Completed 200 OK in 10ms (Views: 8.2ms | ActiveRecord: 0.0ms | Allocations: 13007)
web.1 |
web.1 |
No console errors