.js.rb
files alongside your ViewComponent files and use something nice like LitElement to take your server-rendered markup and do something cool with it as a web component on the client
@rubys is there a typo in snowpack-plugin-require-context ? I get this while running yarn start
/Users/fkchang/src/stimulus-starter/node_modules/@rubys/snowpack-plugin-require-context/plugin.js:70
let recurse = args[1]?.value;
^
deleting the ? works for me, do I need a node upgrade for that line to work?
foo_controller.js.rb:1 Uncaught ReferenceError: Stimulus is not defined
at Object../app/javascript/controllers/foo_controller.js.rb (foo_controller.js.rb:1)
at __webpack_require__ (bootstrap:63)
at webpackContext (controllers sync _controller\.js\.rb$:8)
class FooController < Stimulus::Controller
"dependencies": {
"@hotwired/turbo-rails": "^7.0.0-beta.5",
"@rails/actioncable": "^6.0.0",
"@rails/activestorage": "^6.0.0",
"@rails/ujs": "^6.0.0",
"@rails/webpacker": "5.2.1",
"@ruby2js/webpack-loader": "^1.3.1",
"stimulus": "^2.0.0"
},
import { Controller } from "stimulus"
export default class SubfieldController extends Controller {
....
import { Application } from "stimulus"
import { definitionsFromContext } from "stimulus/webpack-helpers"
const application = Application.start()
const context = require.context("controllers", true, /_controller\.js$/)
application.load(definitionsFromContext(context))
const rubyContext = require.context("controllers", true, /_controller\.js\.rb$/)
function importAll(r) {
r.keys().forEach(r)
}
importAll(rubyContext)
application.load(definitionsFromContext(rubyContext))