使用 Gulp.js 将版本化和构建(缩小)文件正确提交到 GitHub
Posted
技术标签:
【中文标题】使用 Gulp.js 将版本化和构建(缩小)文件正确提交到 GitHub【英文标题】:Correctly committing versioned, and built (minified) files to GitHub with Gulp.js 【发布时间】:2015-10-03 14:39:53 【问题描述】:背景信息
我正在编写一个小型 javascript 库,如果其他人最终想要贡献,我希望尽可能简化贡献流程。目前,我在对 dist
文件夹中的构建文件进行版本控制时遇到问题。
我正在使用:
Git 用于版本控制,Github 用于存储库管理。 Gulp.js 用于构建源文件以及提交和推送版本化文件Gulp 运行一个构建任务,该任务将 JavaScript 文件连接并压缩到 all.min.js
文件中,并将该文件放在 dist
文件夹中。我遇到的麻烦是基于该文件夹进行发布。
我尝试过的事情
1.
让正常的 git 流程发生,即使是构建的文件。我的意思是,当用户创建一个对 master 的拉取请求时,其中一个差异将是 all.min.js
。这通常会导致冲突,并且当拉取请求被确认时,all.min.js
不再标记为“version1.x.x”。
2.
我的下一个想法是将dist
文件夹添加到.gitignore
,然后在gulp构建过程中使用npm包注释掉dist
文件夹,提交并推送,然后取消注释该行。
这当然行不通,因为只要仓库中存在 dist
文件夹,.gitignore
就不适用于该特定项目。
3.
最后一个想法是在开发人员开发时,将这些文件构建到build
文件夹,并将该文件夹添加到.gitignore
。这样,当我使用 Gulp 来“发布”时,我没有文件冲突,并且标记是一致的。发布任务,只有那些任务会推送到dist
文件夹。但是,我仍然觉得这种方式太容易出错了。但是,也许这个解决方案是最好的。
问题: 我如何改进这些流程中的任何一个,以使开发周期保持一致?
【问题讨论】:
【参考方案1】:...只要仓库中存在
dist
文件夹,.gitignore
就不会适用于该特定项目。
如果你已经提交了dist
并且有提交者的re悔,你可以通过运行来使用this answer:
git rm --cached <file-or-directory>
我很想知道你最终做了什么。
【讨论】:
以上是关于使用 Gulp.js 将版本化和构建(缩小)文件正确提交到 GitHub的主要内容,如果未能解决你的问题,请参考以下文章