【问题标题】:How to separate task runner (Gulp - Grunt) source code from build code?如何将任务运行程序(Gulp - Grunt)源代码与构建代码分开?
【发布时间】:2015-06-24 12:03:09
【问题描述】:

假设您正在使用 Grunt 或 Gulp 之类的工具来改进您的 FE 工作流程。文件结构可能看起来像这样。

 - 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

您拥有所有版本控制,因为您想引导您的任务运行程序和文件结构、预处理 mixins 等等。因此,如果没有混乱的代码库,您就不能将它与项目放在同一个 git 存储库中,因此构建工具和项目代码之间存在这种可怕的脱节。我们如何管理这个?它可以在一个 repo 下工作吗?例如,您如何将其放入 Wordpress、Drupal 或其他具有这种分隔的文件结构中?

一些次优解决方案:

  • 手动复制构建代码,这是一种单向解决方案(这意味着您不能只在项目中更改代码并立即完成)。我们必须记住回到任务运行器项目来更改任何代码,然后再次复制。管理两个回购。
  • 将任务运行程序存储库克隆到我的项目存储库中,并以某种方式将构建代码链接到应用程序主题。这意味着我的应用程序中有很多批量代码可以用来构建它。不干净,可能导致核心代码等其他并发症。

必须有更好的方法来链接构建代码。有什么想法吗?

谢谢

【问题讨论】:

    标签: git gruntjs workflow gulp frontend


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多