Quiero importar y usar funciones desde mi archivo javascript/helpers/functions.js en mis controladores de estímulo.
Intenté fijarlo con:
# importmap.rb pin_all_from "app/javascript/helpers", under: "helpers"Agréguelo a la precompilación de activos con:
# asset.rb Rails.application.config.assets.precompile += ['helpers/*'] También intenté importar el archivo en application.js de diferentes maneras (no todas a la vez):
// These are all the ways I tried to import the helpers folder in application.js //= require_tree helpers import "helpers" import "./helpers"En mi controlador Stimulus, lo estoy importando así
// javascript/controllers/select_controller.js import {show, hideAll} from "helpers/functions";Según tengo entendido, esto debería funcionar ya que importmap lo está asignando al espacio de nombres de los ayudantes, pero también intenté importarlo de esta manera:
// javascript/controllers/select_controller.js import { show, hideAll} from "../helpers/functions" Probé todo tipo de variaciones de lo anterior y funciona bien localmente en desarrollo, pero cada vez que ejecuto la aplicación en producción, la carpeta de helpers no se compila o aparece un error 404.
¿Cómo puedo usar los ayudantes de JS en los controladores Stimulus de la manera correcta?
Encontré una solución a mi propio problema:
# importmap.rb pin_all_from "app/javascript/helpers", under: "helpers"Necesitaba importar el archivo auxiliar específico (function.js) en application.js:
// application.js import "helpers/functions"En el controlador de estímulo:
// javascript/controllers/select_controller.js import {show, hideAll} from "helpers/functions";