Estoy migrando un proyecto Rails de Webpacker a Webpack 5. El último contratiempo es que Webpack no está importando correctamente mis controladores Stimulus. Según los documentos de Stimulus , tengo este código en mi punto de entrada:
// app/javascript/global.js import { Application } from "@hotwired/stimulus" import { definitionsFromContext } from "@hotwired/stimulus-webpack-helpers" window.Stimulus = Application.start() const context = require.context("./src/controllers", true, /\.js$/) Stimulus.load(definitionsFromContext(context)) Los propios controladores viven en app/javascript/src/controllers .
Los activos se compilan como se esperaba, pero los controladores Stimulus no están registrados. Además, cuando registro el resultado de require.context() arriba, aparece el siguiente error de consola:
function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}Sé que la ruta del archivo a mis controladores es correcta, porque cuando la cambio a algo obviamente incorrecto, la compilación falla. Además, cuando registro manualmente un controlador:
import { Application } from "@hotwired/stimulus" import Tabs from "./tabs_controller"; const application = Application.start() application.register("tabs", Tabs);El controlador se carga y funciona como se esperaba, por lo que no creo que sea un problema específico de Stimulus.
¿Estoy configurando incorrectamente el método require.context() ? Todo está repetitivo directamente de la documentación, por lo que debería funcionar, pero no sé qué más solucionar.