【发布时间】:2016-03-16 06:26:32
【问题描述】:
我正在开发一个用 Javascript ES6 编写的开源项目。我使用 babel 将其转换为 ES5。这样我就有了这样的文件夹结构:
/project
/src *raw ES6 files*
handler.es6.js
app.es6.js
/lib *transpiled files by babel*
handler.js
app.js
/dist *combined an minified files, ready to use*
project.min.js
我使用 grunt 来编译一个缩小的 js 文件。
唯一可以手动更改的文件位于 /src 中。其他文件是自动生成的。因此,如果用户对app.es6.js 进行更改并发送拉取请求而不运行 grunt 任务,则 /src 和 /lib 中的文件将不同步。
我的问题是,在 GitHub 项目中处理此构建任务的最佳方法是什么。我已经研究了 travis,它已经在为我做测试,但我不确定 travis 是否应该或可以将代码推送到 repo .毕竟最好不要提交构建文件,因为无论如何它们都可以从源代码中计算出来?
【问题讨论】:
-
为什么
/lib会被 git 跟踪?就我个人而言,我不希望 PR 包含构建工件。如果必须跟踪构建工件,我会在合并 PR 后重新构建。 -
Felix 提出了正确的问题。一般来说,生成的文件不应该在您的源存储库中。这可能意味着
dist/也不应该在那里。 -
很多流行的 repos 像 github.com/paperjs/paper.js 都有一个
/dist文件夹。我认为提供代码的构建版本是一个好习惯。你绝对是对的。
标签: javascript github build-process ecmascript-6 travis-ci