Version control 在版本控制中跟踪已编译的CoffeeScript和SASS文件有意义吗?
我正在构建一个单页web应用程序,更喜欢用CoffeeScript和SASS编写源代码。我使用Grunt在运行时动态编译源代码,以便在浏览器中进行测试(使用Grunt contrib watch、livereload等) 当我准备创建我的应用程序的发行版时,我会运行一个Grunt构建脚本,它会再次编译源代码,生成文档,修改版本号,等等。我从来没有对编译过的源代码做过任何更改,因为构建脚本每次都会重新编译(显然会覆盖对编译过的源代码所做的任何更改) 我的问题是:将编译后的源代码检查到版本控制中有意义吗?如果是这样,那么背后的理由是什么? 针对我的场景,还有一些观察:Version control 在版本控制中跟踪已编译的CoffeeScript和SASS文件有意义吗?,version-control,coffeescript,sass,gruntjs,Version Control,Coffeescript,Sass,Gruntjs,我正在构建一个单页web应用程序,更喜欢用CoffeeScript和SASS编写源代码。我使用Grunt在运行时动态编译源代码,以便在浏览器中进行测试(使用Grunt contrib watch、livereload等) 当我准备创建我的应用程序的发行版时,我会运行一个Grunt构建脚本,它会再次编译源代码,生成文档,修改版本号,等等。我从来没有对编译过的源代码做过任何更改,因为构建脚本每次都会重新编译(显然会覆盖对编译过的源代码所做的任何更改) 我的问题是:将编译后的源代码检查到版本控制中有意
这类似于从C代码库对已编译的二进制文件进行版本控制 你似乎已经回答了你自己的问题 如果 源始终签入版本控制 及 可以随时从源代码重建已编译的源代码 然后不,您不应该对生成的文件进行版本设置
您的连续部署过程应该能够测试您的源代码,并将它们编译成可分发的格式,而不受干扰 这里有很多意见。但总的来说,我觉得如果您提供了一种生成发行版的方法(在您的例子中是grunt),那么不,我不喜欢提交这些文件。另一方面,如果您没有提供编译方法,那么请确保提交一个可分发文件。对你来说,我不会这么做。(我并不是在回答这个问题,因为你在这里所希望的只是一个观点。)@jakerella我也有类似的想法,但它认为值得一试,看看是否有我忽略的原因。虽然你的评论肯定是一种观点,但它仍然回答了这个问题。就贡献而言,我是SO社区的新手,但在我看来,这似乎肯定可以作为一个答案。过快控制可分发版本是最佳做法吗?或者,按照您在回答中描述的方式,将其完全留给CI流程更好吗?有些人将构建文件提交到
dist
文件夹的原因是允许其他人通过包管理器(如bower)下载它们。但是,如果您要发布到包存储库(在其中存储生成的文件,如npm),则无需对其进行版本设置。