如何在开源GitHub存储库中处理构建任务?

时间:2015-12-10 14:51:28

标签: javascript github build-process ecmascript-6 travis-ci

我正在开发一个用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是否应该或者可以将代码推送到回购。毕竟可能是最好的,不提交构建文件,因为它们可以从源计算吗?

1 个答案:

答案 0 :(得分:1)

首先,在版本控制下存储已发布的代码根本不是一个好主意。

了解history项目中的解决方法:https://github.com/rackt/history/blob/master/npm-scripts/postinstall.js

他们有一个NPM的postinstall脚本,它检查该模块是否尚未构建并构建它。

如果您将此内容添加到您的仓库,您的消费者将在安装期间即时构建模块。此外,如果您要在NPM注册表中发布此内容,请不要忘记包含构建的文件以减少安装时间。

相关问题