在 TypeScript 中编码时,生成的 .js 文件是不是应该提交给 git?

Posted

技术标签:

【中文标题】在 TypeScript 中编码时,生成的 .js 文件是不是应该提交给 git?【英文标题】:When coding in TypeScript should the generated .js files be committed to git?在 TypeScript 中编码时,生成的 .js 文件是否应该提交给 git? 【发布时间】:2016-09-02 14:53:38 【问题描述】:

使用 TypeScript 编写 node.js 应用程序时,推荐的处理生成的 .js 文件的方式是什么?

我应该将生成的 .js 文件添加到 .gitignore 并仅提交 .ts 文件,还是可以同时提交 .ts 和生成的 .js 文件?

【问题讨论】:

这取决于你。这更像是一个见仁见智的问题,因此这个问题并不真正适合 SO。这就是我投票关闭它的原因。 不,你不应该这样做,就像缩小的 js、css 或任何生成的文件一样。在 git 中你应该只提交 source 文件。 理想情况下,源文件应该由持续集成服务构建和部署,例如codeship。为什么不应该在 git 中提交构建文件?简单的场景:你有两个环境暂存和生产,第一个你需要使用非缩小的 js 文件(用于调试),第二个 - 缩小文件。如果您在部署之前生成文件,那不会有问题。但是如果你在 git 中提交生成的文件,就不可能部署到几个环境中。 除此之外,对源文件的任何更改都需要提交两个文件:源文件和生成文件。 如果您有适当的部署环境并且部署服务器上的构建与您的机器上的相同(相同的库、相同的版本等),那么您不必提交源文件。如果您的构建过程不合适,那么最好提交它们,这样您就可以确定您推送到服务器的东西就是您刚刚测试过的东西。另一种方法是将编译后的代码推送到其他地方(在主仓库中只保留源代码,在此之上创建一些您可以轻松挑选并推送到生产/登台的包)。 【参考方案1】:

Any 必须从存储库中排除用于任何和每个 VCS 的构建工件。仅仅因为存储库必须保存源,您可以使用它在任何环境和任何中间存储状态下重新构建结果

【讨论】:

以上是关于在 TypeScript 中编码时,生成的 .js 文件是不是应该提交给 git?的主要内容,如果未能解决你的问题,请参考以下文章

在同一个项目中同时使用 coffeescript 和 typescript

如何在 NativeScript 项目中隐藏 TypeScript 自动生成的文件

如何使用 typescript 在外部 js 文件中调用函数

初始TypeScript

我可以在 Node.js/Express 中动态导入 TypeScript 模块吗?

TypeScript 环境配置