将时间戳添加到已编译的sass / scss中

时间:2012-10-23 01:45:00

标签: css compass-sass sass

是否可以使用SASS在已编译的CSS文件上自动添加时间戳? e.g。

/* CSS Compiled on: {date+time} */
...compiled css goes here...

我已经检查过SASS和Compass文档,但没有提到这样的功能。

3 个答案:

答案 0 :(得分:16)

我不知道有任何内置的SASS或Compass功能,但是添加自定义Ruby功能并不难。 (请参阅SASS参考Adding Custom Functions中标题为“here”的部分。)

使用Ruby函数的文件看起来像这样(我们称之为“timestamp.rb”):

module Sass::Script::Functions
    def timestamp()
        return Sass::Script::String.new(Time.now.to_s)
    end
end

您可以在SASS文件中引用新的时间戳功能,如下所示:

/*!
 * CSS Compiled on: #{timestamp()}
 */

您需要确保在编译SASS时加载“timestamp.rb”文件,方法是从Compass配置文件中请求它,或者使用带有SASS命令行的--require参数。完成所有操作后,您应该获得如下输出:

/*
 * CSS Compiled on: 2012-10-23 08:53:03 -0400
 */

答案 1 :(得分:1)

如果您使用的是SCSS的命令行版本,则可以执行以下操作:

  1. 安装sass-timestamp

    gem install sass-timestamp

  2. 在您的代码中使用它(有关详细信息,请参阅documentation

    /* Compiled on #{timestamp()} */

  3. 在命令行上需要它

    scss -r sass-timestamp ...

  4. 输出

    /* Compiled on 2015-02-02 13:01:40 +0800 */

  5. 注意:使用#{unix_timestamp()}作为unix时间戳

答案 2 :(得分:0)

不知道大家有没有需要(因为这个问题很久以前就有人回答过了), 但一个简单的解决方案是写时间戳/日期 到单个 sass/scss 文件作为 SASS 变量, 将它们导入到时间戳应该所在的位置 然后让 sass 中的注释将它们写出来。

无需安装、编译或其他任何东西 - 只需使用脚本和 sass:

1.) 将时间戳写入单独的 sass 文件:(这里是 dos 脚本,但您也可以使用任何其他脚本/语言来生成简单文件):

echo $BuildTimeStamp : "%date% %time%"> _timestamp.scss 

2.) 导入带有时间戳的生成文件:

@import '_timestamp.scss';

3.) 将标题写成注释:

/*! Automatic build at: #{$BuildTimeStamp} */

在调用原始sass命令之前写上时间戳 它也无需安装、构建或执行任何其他操作即可工作。