¿Cómo separar el código fuente del cornetworkingor de tareas (Gulp – Grunt) del código de compilation?

Imagine que está utilizando algo como Grunt o Gulp para mejorar su flujo de trabajo FE. La estructura del file puede ser similar a esto.

- workflow-project-folder - source - ...HTML/JS/CSS preprocess code... - .git 

Y tu cornetworkingor de tareas está produciendo

  - workflow-project-folder - source - build - ...Complied code SASS to CSS etc.... - .git 

Tal vez su proyecto (ficticio) se parece a

 - app/cms-project-folder - themes - assets - css - images - js - includes - templates index.pgmlang - system - libs - plugins - foo.pgmlang - bar.pgmlang .git 

Tienes toda esa versión controlada porque querías arrancar tu estructura de file y tarea, mezclar preprocesss y todo. Entonces no puedes tenerlo en el mismo repository de git como el proyecto sin una base de código desorderada, entonces esta horrible desconnection entre las herramientas de construcción y el código del proyecto. ¿Cómo logramos esto? ¿Puede funcionar bajo un repo? ¿Cómo podría, por ejemplo, poner esto en WordPress, Drupal u otras estructuras de files con esta separación?

Algunas soluciones sub óptimas:

  • Copia el código de compilation a mano, esta es una solución de una sola vía (lo que significa que no puedes simplemente hacer que el código cambie en el proyecto y auge está hecho). Tenemos que recordar volver al proyecto del cornetworkingor de tareas para cambiar cualquier código y luego copyr de nuevo. Administrando dos repositorys
  • Clonar el repo del cornetworkingor de tareas en mi repository del proyecto y vincular de algún modo el código de compilation al tema de la aplicación. Lo que significa que tengo un montón de código masivo con mi aplicación que está ahí para buildlo. No es limpio y podría dar lugar a otras complicaciones con el código central, etc.

Debe haber una mejor forma de vincular el código de compilation. ¿Alguna gente de ideas?

Gracias

Me gusta usar Bower y NPM para administrar las dependencies de compilation. bower.json un file bower.json y un file package.json para especificar las versiones específicas de las dependencies de su proyecto. Luego, cuando acaba de clonar su repository, todo lo que tiene que hacer es bower install && npm install antes de su compilation de Grunt.

Si tiene un set de dependencies más personalizadas, puede includelas a través de los submodules de git . En este caso, tendría su repository principal que incluye a través de un submodule una versión específica del repository de una biblioteca.