javascript - present - ¿Cómo puedo obtener la canalización de activos de Rails para producir mapas de origen?
ruby on rails on heroku (4)
¡Rails admite mapas de origen para javascript minificado! Rails depende de los sprockets para la compilación de activos, y el soporte de los mapas fuente se agregó a los piñones en esta solicitud de extracción .
Editado el 12/12/2016 para actualizar el texto principal de la respuesta.
Me gustaría que Rails produzca mapas de origen junto con el coffeescript compilado / JS minificado, para un mejor registro de errores. Sin embargo, no parece haber documentación completa en la red sobre cómo hacer esto. ¿Alguien ha hecho esto?
Estoy en Rails 3.2 y Heroku.
Parece que debería funcionar: http://alexspeller.com/2012/09/15/Source_maps_for_coffeescript_in_rails.html
Sin embargo, tenga en cuenta la advertencia al final:
Nota importante : este truco más bien brutal reemplaza el compilador de coffeescript normal por el bombardeo al compilador CoffeeScriptRedux, que de hecho no está terminado. Esto es solo una prueba de concepto, probablemente no deberías usarlo.
Así que no recomendaría ejecutar esto en producción, pero si tiene un entorno de ensayo (también en Heroku, también con JavaScript miniaturizado) podría ser útil.
Probado esto Funciona. https://github.com/markbates/coffee-rails-source-maps . Sin embargo, hace que la representación de tus activos sea mucho más lenta.
Si realmente no desea los mapas de origen, sino solo desea números de línea en las excepciones de compilación de scripts coffee, intente esto:
Solía ser que el hecho de tener barras de café en su Gemfile produciría excepciones con números de línea en la fuente del coffeescript original. Luego, desaparecieron con una excepción de número de línea. Hice algunas excavaciones, y encontré que coffee-script-source
1.5.x dio números de línea en las excepciones de compilación, mientras que coffee-script-source
1.6.x no lo hizo. Creo que es un error, y no me sorprendería si esto fuera "arreglado" en el futuro.
# Gemfile
gem ''coffee-rails'', ''~> 4.0.0''
gem ''coffee-script-source'', ''~> 1.5.0'' # 1.6 doesn''t include line numbers in exceptions
Entonces obtendrás excepciones como (''coffee-script-source'', ''~> 1.5.0'')
Showing /Users/.../app/views/layouts/application.html.erb where line #12 raised:
SyntaxError: missing } on line 15
(in /Users/.../app/assets/javascripts/app.js.coffee)
En lugar de (''coffee-script-source'', ''~> 1.6.3'')
Showing /Users/.../app/views/layouts/application.html.erb where line #12 raised:
SyntaxError: missing }
(in /Users/.../app/assets/javascripts/app.js.coffee)