2015-06-24 43 views
1

想象一下,您正在使用Grunt或Gulp之类的东西来改善您的FE工作流程。文件结构可能看起来像这样。如何从构建代码中分离任务运行器(Gulp - Grunt)源代码?

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

而你的任务运行是生产

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

也许你的(虚构的)项目看起来像

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

你们都该版本控制,因为你想引导你的任务运行和文件结构,预处理混音和所有。所以你不能在没有乱码的项目的同一个git仓库中使用它,所以在构建工具和项目代码之间存在着这种可怕的断开。我们如何管理这个?它可以在一个回购协议下工作吗?你怎么会把这个到Wordpress,Drupal或其他文件结构与这种分离?

一些次优解决方案:

  • 复制构建代码在手,这是一个单向的解决方案(这意味着你不能只是使代码在项目变更和繁荣,它的完成)。我们必须记住回到任务运行器项目来更改任何代码,然后再次复制。管理两个回购。
  • 将任务亚军回购克隆到我的项目回购中,并以某种方式将构建代码链接到应用程序主题。这意味着我的应用程序中有大量的批量代码,只是在那里构建它。不干净,可能会导致其他核心代码等问题。

必须有更好的方法来链接构建代码。任何想法的人?

谢谢

回答

1

我喜欢使用Bower和NPM来管理构建依赖关系。他们将使用bower.json文件和package.json文件来指定项目依存关系的特定版本。然后,当你刚刚克隆你的仓库时,你所需要做的就是在你的Grunt构建之前使用bower install && npm install

如果您有更多定制的依赖项,您可以通过git submodules包含它们。在这种情况下,您将拥有通过子模块包含特定版本的库存储库的主存储库。