requisitos - Mapas fuente en Ruby on Rails a través de ruedas dentadas
requisitos para instalar ruby on rails (1)
Me gustaría agregar soporte de mapa de origen en una aplicación de Rails 3.2 en la que estoy trabajando. Por lo que sé, la generación de mapas de origen no es compatible con Sprockets y desde su página github parece que la función está planificada para 4.0. Estoy trabajando con Sprockets 2.2 y creo que el parche de mono es la única manera de hacerlo. El módulo de Procesamiento bajo el módulo principal de Sprockets da acceso a la función js_compressor que puede parchearse para generar un mapa de origen para un solo archivo. Pero, no sé cómo agregar esto cuando se combinan los archivos JS. Estoy usando Uglifier 2.4 como el compresor.
El proyecto tiene una mezcla de archivos CoffeeScript, JS y EJS. Entonces, creo que así es como los piñones los compilarían juntos. Primero, convertiría Coffeescript y EJS a JS, luego utilizaría js_compressor para comprimir archivos individuales y luego concatenarlos en grupos. Ahora, como el mapa de origen para varios archivos combinados en el mismo archivo es un solo archivo. Por lo tanto, tendré que cambiar un poco el proceso de compilación y hacer que js_compressor se ejecute sobre los archivos, una vez que la concatenación haya finalizado. Entonces, ¿alguien puede ayudar con esto? Incluso explicar el proceso de compilación de las ruedas dentadas y los módulos utilizados y las funciones involucradas sería de gran ayuda. No me importa hacer archivos de mapas de origen para el código de CoffeeScript en la actualidad. Incluso la asignación a sus archivos JS convertidos haría.
Además, me gustaría agregar que si hay alguna gema que pueda ayudar con esto, sería muy bienvenido.
Rails 4 tampoco tiene mapas de origen.
Por lo que sé, y a partir de hoy, esto solo será parte de los rieles 5.
Un buen enfoque para resolver esto ahora mismo se implementa en el discurso de @SamSaffron y se explica aquí: https://github.com/discourse/discourse/blob/master/lib/tasks/assets.rake
Lo esencial, agregue una tarea "antes" al proceso de precompilación de las ruedas dentadas, e ingrese en el proceso de compilación para generar las directivas y los archivos asignados al sur.
Lo bueno de este enfoque es que no se pierden archivos de archivos que son js y erb (* .js.erb), que es algo bastante común en los rieles.
Creo que parchear todo el conducto de las ruedas dentadas es un poco abusivo y arriesgado.