【问题标题】:Are you supposed to put *.css files into git when they're generated from *.scss?当 *.scss 生成 *.css 文件时,您是否应该将它们放入 git 中?
【发布时间】:2011-04-11 22:50:28
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    我更喜欢将它们签入。我们从 git 部署到我们的暂存和生产环境,并且在部署到生产环境时我不希望依赖另一个工具/编译。这样一来,推出的内容就一目了然了。

    【讨论】:

      【解决方案2】:

      一般来说,您通常不需要将生成的文件签入源代码管理。只要您的代码生成始终如一,并且您始终使用它来更新您的目标 .css 文件,我认为您不需要将它们置于源代码管理中。

      也就是说,不将生成的文件放入源代码管理的建议通常更多用于二进制文件(即从构建生成的库或可执行文件)。造成这种情况的主要原因是二进制文件不容易区分/合并,因此如果多人尝试签入对同一个二进制文件的更改,您最终可能会遇到无法轻松解决的合并问题。由于您正在处理纯文本 css 文件,因此我认为将它们也放入源代码控制中没什么大不了的,这样您就可以备份实际的目标文件。

      【讨论】:

        【解决方案3】:

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

        将您的源代码放在主目录/语言名称下的 src 目录中,在这种情况下:

        /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/
        

        宝贝,现在你是一位妈妈级的程序员了!

        【讨论】:

          猜你喜欢
          • 2012-02-09
          • 2015-07-07
          • 2016-09-02
          • 2015-08-12
          • 2019-06-12
          • 1970-01-01
          • 2019-11-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多