Archivos de la aplicación web Yeoman que se deben comprometer en SCM / GIT

Cuando hacemos "yo webapp" (asumiendo que el generador de aplicaciones web está instalado), andamia proyectos que contienen files relevantes para bower, gruñidos y luego hay una carpeta de aplicaciones, de la que todos sabemos de qué se trata.

Mi pregunta es, fuera de esta estructura, cuáles son los files que se deben mantener en SCM. ¿Debería ser solo el directory de la aplicación o debería ser una estructura completa? (Suponiendo que no haya una tarea adicional o cambios en el file de compilation del andamiaje anterior)

El generador de .gitignore Yeoman producirá un file .gitignore que incluye files que no deberían estar comprometidos con un SCM. Este file incluye los siguientes directorys:

 node_modules dist .tmp .sass-cache bower_components test/bower_components 

Está claro que .tmp y .sass-cache no tienen ninguna razón para estar en el repository ya que ambos son solo temporales.

Sin embargo, hay una discusión sobre si las dependencies de bower (y raramente de nodo ) deben registrarse. Para la mayoría de los proyectos, recomiendo no hacerlo.

Tenga en count que, en cualquier caso, uno nunca debe cambiar los packages directamente en la carpeta bower_components o node_modules ya que cualquier cambio se perderá en la próxima bower install npm install o npm install . Una bifurcación del proyecto original (ya sea como un repository independiente o una carpeta en el proyecto, por ejemplo, lib ) es una mejor idea: una request de extracción de seguimiento luego agregaría una gran cantidad de karma 🙂

La carpeta dist con la compilation de la aplicación puede estar comprometida dependiendo de su método de implementación. Hay una muy buena guía sobre el deployment en el sitio Yeoman .

Para empezar, debe poner todo en SCM con la exception de app / bower_components, test / bower_components y node_modules. Todos los files en estos directorys provienen de repository público, ya sea nodo o bower repo.

En esta configuration, cada vez que otro desarrollador realiza el pago desde SCM, necesita ejecutar 2 commands: npm install e installation de bower. Lo que normalmente hago es crear un file llamado install.sh (install.bat en Windows) y tener estos 2 commands dentro de este file de script. De esta forma, cuando descubra que necesita ejecutar más commands para la initialization, puede agregar fácilmente a este file de script y los nuevos desarrolladores pueden simplemente realizar la compra y ejecutar install.sh.

En algunos casos, descubrí que necesito realizar pequeñas modificaciones en una biblioteca pública. En este caso, verificaré esta biblioteca dentro de bower_components en SCM también. Esto no es común, pero sucede.