Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

234
Vistas
Shakapacker, Rails, React: no carga aplicaciones/activos que no reaccionan javascript

Actualicé mi aplicación a Rails 7 y la cambié de webpacker a shakapacker.

Es principalmente una interfaz de reacción, con algunas páginas antiguas en haml con jquery escuchando archivos js en aplicaciones/activos.

Shakapacker y la interfaz de reacción funcionan correctamente, las vistas de rieles se cargan (ni siquiera necesitan que se ejecute webpacker), pero los oyentes de jquery no se ejecutan ni escuchan las vistas de rieles.

aplicación/activos/javascripts/aplicación.js

Se está cargando, puedo ver a través del registro en la consola.

El archivo se ve así:

 // This is a manifest file that'll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's // vendor/assets/javascripts directory can be referenced here using a relative path. // // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the // compiled file. JavaScript code in this file should be added after the last require_* statement. // // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details // about supported directives. // console.log('Hello World from Webpacker 2') // = require jquery-3.3.1.min //= require popper //= require rails-ujs //= require cable //= require jquery-ui //= require activestorage //= require bootstrap //= require bootstrap-select //= require moment //= require tempusdominus-bootstrap-4 //= require jquery.easy-autocomplete.min //= require jquery.slimscroll.min //= require patch_modal //= require_tree

La aplicación React se carga cuando las rutas de los rieles que usan la interfaz de reacción se golpean con: <%= javascript_pack_tag 'react_app', crossorigin: "anonymous" %> <%= stylesheet_pack_tag 'react_app', crossorigin: "anonymous" %>

¿Hay algo más que deba configurar para obtener mis archivos js en app/assets/javascripts/*.js para compilar con shakapacker?

Sentí que solo funcionaba con webpacker, también probé algunos otros compiladores (jsbuild, vite) y también estuvo bien. Tuve que detenerme con ellos por otros problemas en mi lado de React.

Cualquier consejo o sugerencia es muy apreciada. Siento que he pasado demasiado tiempo haciendo feliz a Rails 7 con la interfaz.

¡¡Gracias!!

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

app/ ├─ assets/ # used by sprockets-rails │ └─ javascripts/ # not used in rails 7 by default │ └─ application.js # javascript_include_tag "application" │ └─ javascript/ # used by shakapacker and other js bundlers ├─ packs/ # webpack entries │ └─ application.js # javascript_pack_tag "application" │ └─ application.js # or this one (depending on `source_entry_path` in config/webpacker.yml)

Shakapacker no debe procesar assets/javascripts/application.js , porque no sabe cómo procesar //= require directivas. Se manejan mediante ruedas dentadas .

Para cargar assets/javascripts/application.js , agregue esto a su diseño:

 <%= javascript_include_tag "application" %>

y verifique dos veces manifest.js , debería tener application.js :

 //= link application.js

Sprockets //= requiere con jsbundling-rails (esbuild): ¿cómo incluir JS proporcionado por gem?


Las directivas Sprockets se procesan solo en la parte superior del archivo:

 // This is processed by sprockets and popper is required. //= require popper console.log("loaded") // After any code, it is a regular comment, nothing happens. //= require popper

https://github.com/rails/sprockets#directives

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda