10

是否可以使用 SASS 在编译的 CSS 文件上自动添加时间戳?例如

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

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

4

3 回答 3

16

我不知道任何内置的 SASS 或 Compass 功能,但添加自定义 Ruby 函数来实现它并不难。(请参阅此处SASS 参考中标题为“添加自定义函数”的部分。)

您的带有 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 配置文件中要求它,或者通过--require在 SASS 命令行中使用参数。当一切都说完了,你应该得到如下输出:

/*
 * CSS Compiled on: 2012-10-23 08:53:03 -0400
 */
于 2012-10-23T13:02:38.520 回答
1

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

  1. 安装sass 时间戳

    gem install sass-timestamp

  2. 在您的代码中使用它(有关更多信息,请参阅文档)

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

  3. 在命令行上需要它

    scss -r sass-timestamp ...

  4. 输出将是

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

注意:#{unix_timestamp()}用于 unix 时间戳

于 2016-07-13T11:55:52.810 回答
0

我不知道是否每个人都需要它(因为这个问题很久以前就已经回答了),但一个简单的解决方案是将时间戳/日期作为 SASS 变量写入单个 sass/scss 文件,将它们导入到时间戳应该是,然后让 sass 中的评论将它们写出来。

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

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

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

2.) 使用时间戳导入生成的文件:

@import '_timestamp.scss';

3.)将标题写为注释:

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

在调用原始 sass 命令之前写下时间戳,它也可以在不需要安装、构建或执行任何其他操作的情况下工作。

于 2021-07-02T09:22:07.730 回答