使用Gulp.js正确地将版本化和构建(缩小)文件提交给GitHub

时间:2015-07-14 19:18:48

标签: git github workflow gulp

背景信息

我正在编写一个小型JavaScript库,如果其他人最终想要贡献,我希望尽可能简化贡献。目前,我遇到了版本化dist文件夹中的内置文件的问题。

我正在使用:

  • Git for version control,Github for repository management。
  • 用于构建源文件以及提交和推送版本化文件的Gulp.js

Gulp运行一个构建任务,将JavaScript文件连接起来并将其缩小为all.min.js文件,并将该文件放在dist文件夹中。我遇到的麻烦是根据该文件夹进行发布。

我尝试过的事情

1 即使使用构建的文件,也会发生正常的git流。我的意思是当用户创建一个拉取请求来掌握时,其中一个差异将是all.min.js。这通常会导致冲突,当确认提取请求时,all.min.js不再标记为“version1.x.x”。

2 我的下一个想法是将dist文件夹添加到.gitignore,然后在gulp构建过程中使用npm包注释掉dist文件夹,提交和推送,然后取消注释该行

这当然不起作用,因为只要回购中存在dist文件夹,.gitignore将不适用于该特定项目。

第3 最后一个想法是开发人员开发时,将这些文件构建到build文件夹,然后将该文件夹添加到.gitignore。这样,当我使用Gulp“释放”时,我没有文件冲突,并且标记是一致的。发布任务,只有那些任务会推送到dist文件夹。但是,我仍然觉得这种方式对错误太开放了。但是,也许这个解决方案是最好的。

问题: 如何改进这些流程以实现一致的开发周期?

1 个答案:

答案 0 :(得分:0)

  

...只要回购中存在dist文件夹,.gitignore将不适用于该特定项目。

如果您已经提交了dist并让提交者感到懊悔,可以通过以下方式使用this answer

git rm --cached <file-or-directory>

我很想知道你最终做了什么。