¿Debería registrar sus activos comstackdos en Git?

Así que he estado teniendo esta discusión con algunos compañeros de trabajo y me gustaría que otras personas influyan en esto. Tengo curiosidad por ver lo que otros desarrolladores están haciendo.

Lo que me gusta hacer es ignorar toda la carpeta build / assets del repository. Esta carpeta contiene mis CSS comstackdos, Javascript e imágenes comprimidas. Creo que solo se deben registrar los files de origen. Me resulta molesto que cada vez que realizo un cambio en una hoja de estilo o un file JS, tenga que verificar el file de origen Y la nueva versión comstackda. Esto también introduce conflictos de combinación y otros problemas cuando tienes varias personas trabajando en el proyecto. Me gusta mantener el repository agradable y liviano y luego hacer que el desarrollador construya el proyecto localmente para configurarlo. O cuando implemente, haga que el server construya el proyecto.

Esto es un problema, porque mis compañeros de trabajo usan Git como el process de implementación. Entonces, cuando desee implementar, compruebe su código en git, empújelo en el repository remoto y luego SSH en el server y haga un git fetch && git pull. Esto significa que TODOS los files del website tienen que vivir en el repository. Así que ahora tengo que verificar en mi carpeta de activos.

¿Cómo manejan esto? Estoy utilizando bedrock-ansible para un sitio de WordPress, y hay una opción para ejecutar algunos commands justo antes de que se implemente, así que lo configuré para ejecutar npm install && gulp build y build el proyecto, pero el problema es que era mucho demasiado lento. La forma en que bedrock-ansible funciona es que crea un nuevo directory de publicación para cada implementación, y simplemente enlaza el último al directory current . Así que cada vez que lo implementé, se ejecutó la npm install cuando, en realidad, solo necesito esas dependencies en un directory compartido. Puede haber una manera de hacerlo con npm install --prefix install/dir pero aún no lo he probado. Creo que eso podría presentar más problemas.

Por ahora, tuve que registrar todos mis activos comstackdos en git, para que esto funcione. Pero en mi tarea de gulp watch , no tengo ninguna minificación, pero cuando quiero implementarlo, quiero ejecutar gulp build primero, lo que minimiza y uglifica todo, así que técnicamente siempre tendría que hacer un commit cuando lo desee para implementar el sitio. Es un desastre. ¿Cuál crees que es una buena manera de manejar esto?

gulp build podría poner todos los files comstackdos en un directory dist/ y gulp publish podría llevar este directory al control remoto. Puede usar git-directory-deploy para esto:

 $ git-directory-deploy --directory dist --branch master 

O puede configurar manualmente una sucursal separada para los activos comstackdos y enviarla al server remoto cuando implemente su website ( esta respuesta SO podría ayudar).

De esta forma, puede mantener un historial limpio en su twig de desarrollo y no preocuparse por fusionar conflictos mientras sigue usando Git como un process de implementación.

En lugar de ingresar directamente en el server, puede crear una tarea que, ejecutada localmente, haga lo siguiente:

  • golpea la versión
  • build el proyecto
  • agregue los activos comstackdos a git con la opción –force
  • compromete los cambios
  • crea una label
  • empuja todo al repository remoto
  • sshs al server
  • extrae nuevos activos