Version control 在版本控制中跟踪已编译的CoffeeScript和SASS文件有意义吗?

Version control 在版本控制中跟踪已编译的CoffeeScript和SASS文件有意义吗?,version-control,coffeescript,sass,gruntjs,Version Control,Coffeescript,Sass,Gruntjs,我正在构建一个单页web应用程序,更喜欢用CoffeeScript和SASS编写源代码。我使用Grunt在运行时动态编译源代码,以便在浏览器中进行测试(使用Grunt contrib watch、livereload等) 当我准备创建我的应用程序的发行版时,我会运行一个Grunt构建脚本,它会再次编译源代码,生成文档,修改版本号,等等。我从来没有对编译过的源代码做过任何更改,因为构建脚本每次都会重新编译(显然会覆盖对编译过的源代码所做的任何更改) 我的问题是:将编译后的源代码检查到版本控制中有意

我正在构建一个单页web应用程序,更喜欢用CoffeeScript和SASS编写源代码。我使用Grunt在运行时动态编译源代码,以便在浏览器中进行测试(使用Grunt contrib watch、livereload等)

当我准备创建我的应用程序的发行版时,我会运行一个Grunt构建脚本,它会再次编译源代码,生成文档,修改版本号,等等。我从来没有对编译过的源代码做过任何更改,因为构建脚本每次都会重新编译(显然会覆盖对编译过的源代码所做的任何更改)

我的问题是:将编译后的源代码检查到版本控制中有意义吗?如果是这样,那么背后的理由是什么?

针对我的场景,还有一些观察:

  • 源始终签入版本控制
  • 可以随时从源代码重建已编译的源代码
  • 我有一个单独的“dist”目录,在这个目录中,应用程序的编译版本和随时可以部署的版本一直保存在其中,并且在版本控制中进行跟踪

  • 这类似于从C代码库对已编译的二进制文件进行版本控制

    你似乎已经回答了你自己的问题

    如果

    源始终签入版本控制

    可以随时从源代码重建已编译的源代码

    然后不,您不应该对生成的文件进行版本设置


    您的连续部署过程应该能够测试您的源代码,并将它们编译成可分发的格式,而不受干扰

    这里有很多意见。但总的来说,我觉得如果您提供了一种生成发行版的方法(在您的例子中是grunt),那么不,我不喜欢提交这些文件。另一方面,如果您没有提供编译方法,那么请确保提交一个可分发文件。对你来说,我不会这么做。(我并不是在回答这个问题,因为你在这里所希望的只是一个观点。)@jakerella我也有类似的想法,但它认为值得一试,看看是否有我忽略的原因。虽然你的评论肯定是一种观点,但它仍然回答了这个问题。就贡献而言,我是SO社区的新手,但在我看来,这似乎肯定可以作为一个答案。过快控制可分发版本是最佳做法吗?或者,按照您在回答中描述的方式,将其完全留给CI流程更好吗?有些人将构建文件提交到
    dist
    文件夹的原因是允许其他人通过包管理器(如bower)下载它们。但是,如果您要发布到包存储库(在其中存储生成的文件,如npm),则无需对其进行版本设置。