2012-02-17 16 views
5

Actualmente estoy desarrollando una aplicación de Rails que hace un uso intensivo de algunas bibliotecas de JavaScript, como jquery, backbone.js y d3.js. Para jquery, está el jquery-rails gem, para la red troncal, tenemos backbone-rails. Pero nada como esto existe para d3.js.¿Cuál es la mejor manera de mantener actualizadas las bibliotecas de JavaScript en los rieles?

Copié el javascript de d3.js a mi repositorio, sin embargo, esto me parece un poco sucio, porque cuando d3 se actualice, tengo que copiarlo nuevamente (¡y tengo que darme cuenta de que d3 se actualizó!) . Pensé en los submódulos de git, pero tengo que extraerlos manualmente cada vez que reviso el repositorio. ¿Puede haber alguna forma de dejar que bundler revise una versión específica del repositorio d3?

¿Cómo se maneja la actualización de terceros bibliotecas javascript en rieles? ¿Hay una manera preferida?

+1

Déjelos fuera de GIT y hágalo manualmente. –

Respuesta

5

¿Por qué no crear una gema d3-rails si no hay una? La convención ahora parece ser poner estas bibliotecas javascript en sus propias gemas con jquery-rails ahora incluidos en Rails 3.1. Es más trabajo ahora, pero podría ser rentable para ti en el futuro. Ayudaría a la comunidad y haría actualizaciones fáciles dentro de su aplicación.

+0

Sí. Consulte la siguiente pregunta: http://stackoverflow.com/questions/9525381/asset-pipeline-encoding-problems-utf-8-vs-ascii-8bit-with-external-gem – iblue

7

No estoy seguro de por qué se metió downvoted para este ...

Pero voy a tener que estar de acuerdo con el comentario que dice que hacer de forma manual. No lo dejaría fuera de su repositorio, no hay necesidad de eso; quieres mantener actualizada tu versión actual, pero no recomendaría que se actualice automáticamente.

Eso es para la estabilidad. Si haces un "uso intensivo" de JS como dices, un capricho, o incluso una corrección de error para un error con el que trabajaste, en la última versión de una biblioteca podría causar estragos en tu código. Nos tocó algo así cuando jQuery modificó la forma en que trató attr() y prop() entre dos versiones.

Así que si se actualiza siempre sus bibliotecas manualmente:

  • que siempre sepa cuando cambian, y que usted tiene que hacer algunas pruebas a fondo antes de hacer los cambios pública.
  • Puede quedarse con una versión anterior de la biblioteca si lo desea, por rendimiento, o para darle tiempo a trabajar con los últimos caprichos, o lo que sea.

Espero que ayude!

+0

Concur con @Xavier Holt. Si bien no responde tu pregunta, creo que recibiste buenos consejos. ** Una vez ** actualizamos jQuery sin pruebas y descubrimos que sucedieron cosas malas. – Tass

+0

+1 para una ronda completa de pruebas de UI después de actualizar una dependencia. La actualización de ExtJS rompió una gran cantidad de nuestra IU. – Brandan

Cuestiones relacionadas