当你从* .scss生成时,是否应该将* .css文件放入git中?

时间:2011-04-11 22:50:28

标签: ruby-on-rails-3 capistrano sass

我开始使用sass scss样式表。这些文件从* .scss文件生成* .css文件。我的问题是,您检查哪些文件进入版本控制?现在我检查main.scss和生成的main.css。我想知道是否有办法只检查* .scss文件并确保在部署时生成* .css文件。

3 个答案:

答案 0 :(得分:2)

我更喜欢检查它们。我们从git部署到我们的登台和生产环境,在部署到生产时我更不依赖于另一个工具/编译。这样,它绝对清楚地被推出了什么。

答案 1 :(得分:1)

通常,您通常不需要将生成的文件检查到源代码管理中。只要您的代码生成一致,并且您一直使用它来更新目标.css文件,我认为您不需要将它们放在源代码管理中。

也就是说,不将生成的文件放入源代码控制的建议通常更多地用于二进制文件(即从构建生成的库或可执行文件)。这样做的主要原因是二进制文件无法轻易地进行差异/合并,因此如果多个人尝试检查对同一二进制文件的更改,最终可能会出现无法轻松解决的合并问题。既然你正在处理纯文本css文件,我认为将它们放在源代码控制中并不是一件大事,只是让你有一个实际目标文件的备份。

答案 2 :(得分:0)

我喜欢借用服务器端开发人员在处理像sass这样的已编译前端代码时使用的约定。我将所有源代码与编译代码分开。以下是我如何设置它:

将源放在src目录中,在main / language-name下,在这种情况下:

/path-to-my-app/src/main/sass/my-syntactically-awesome-file.scss

然后将测试放在相同的测试目录中(不应该对sass进行任何测试:

/path-to-my-app/src/test/sass/my-syntactically-awesome-test.whatever

然后将已编译的代码放在发布就绪目录中,如下所示:

/path-to-my-app/publish/css/my-syntactically-awesome-file.css

然后提交整个shebang(!)

您可以确保始终将您的CSS放在正确的位置:

$ cd /path-to-my-app
$ sass --watch src/main/sass/*.scss:publish/css/

现在你是一位做母亲的程序员,宝贝!