¿Cómo bifurcar un paquete Meteorite existente de forma limpia?
Estoy tratando de encontrar la manera mejor / más limpia de incluir un paquete existente en Atmosphere dentro de un proyecto. Me encontré con algunas ocasiones en las que un paquete existente necesitaba algunas modificaciones y me vi obligado a hacerlo.
Por lo que sé, existen las siguientes opciones. Desafortunadamente, todos estos tienen sus propios problemas y todavía tengo que encontrar la solución perfecta. usarémeteor-router
como ejemplo:
Pasos:
retirarpackages/router/.git/
editarpackages/.gitignore
y eliminar la línea 'router'quitar el enrutador de susmart.json
añadirpackages/router
a tu repositorio de proyectos y comprometeahora haga cambios (de esta manera, su confirmación inicial es una versión limpia y usted puede resolver lo que ha cambiado usted mismo)Ventajas:
fácil de lograr y entenderTodo el código en el que confía se puede encontrar en el repositorio de su proyectoDesventajas:
Pierdes toda la historia de los repositorios originales.es difícil actualizar a una versión más nuevaEs difícil aportar tus cambios al proyecto original.¡Ni siquiera consideres esto para ninguno de los paquetes más simples!
2. Tenedor en github, entonces ...Para bifurcar un paquete en github, puedes revisar tusmart.lock
archivo para ver qué repositorio se está utilizando. Vaya a la página github de ese repositorio y bifurque.
A continuación, tienes tres opciones:
2a. Añadirlo como un submódulo de git.Más información sobre los submódulos de git:http://git-scm.com/book/en/Git-Tools-Submodules
Pasos:
Vea el enlace anterior sobre cómo iniciar / crear / actualizar un submóduloRetire el paquete de susmart.json
Ventajas:
Las versiones de submódulos están conectadas a su proyecto.Los cambios son recogidos inmediatamente.Desventajas:
Todos los desarrolladores necesitan ejecutargit submodule init
la primera vez yupdate
actualizarDebe tener en cuenta los problemas con los submódulos al editar el proceso de pago.Lea sobre otros temas con submódulos2b. Edita tu proyectosmart.json
usar tu versiónPasos:
En tussmart.json
, encontrar"router": {}
y añadir"git": "https://github.com/USER/meteor-router.git"
dentro del vacío{}
.Opcionalmente, agregue un"branch"
o"tag"
.Ventajas:
Aún puedes usar Meteorite para administrar tus paquetes externosTrabajará automáticamente para otros desarrolladores y en entornos de implementación.Desventajas:
El código en su carpeta de paquetes no es editable, ya que no es un repositorio gitMeteorite no se actualizará automáticamente a la última versión cada vez que lo ejecute(Mejora sugerida de Meteorite: permite que los paquetes se instalen en una forma editable, como el pip de Python permite usar el parámetro '-e')
2c. Clone fuera de su proyecto y agregue un"path"
asmart.json
Pasos:
Clona el paquete a un lugar fuera de tu proyectoSimilar a 2b, agrega un"path"
para ustedsmart.json
apuntar Meteorite a su caja localVentajas:
Puede editar el paquete a voluntad y Meteor recogerá automáticamente los cambios.Desventajas:
Si te comprometes estosmart.json
, lo más probable es que rompa todos los demás entornos de desarrollo / implementación ...¿Qué método utilizas? ¿Cómo se resuelven las desventajas de ese método?
Es posible que me haya perdido algunos problemas con estas soluciones.