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をコンパイルするときに、Compass構成ファイルから要求するか--require、SASSコマンドラインでパラメーターを使用して、「timestamp.rb」ファイルがロードされていることを確認する必要があります。すべてが完了したら、次のような出力が得られるはずです。

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

SCSSのコマンドラインバージョンを使用している場合は、次の操作を実行できます。

  1. sass-timestampをインストールします

    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-scriptですが、他のスクリプト/言語を使用して単純なファイルを生成することもできます):

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

2.)タイムスタンプを使用して生成されたファイルをインポートします。

@import '_timestamp.scss';

3.)ヘッダーをコメントとして書き出します。

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

元のsassコマンドを呼び出す前にタイムスタンプを書き込んでください。これにより、インストール、ビルド、またはその他の操作を行う必要がなくなります。

于 2021-07-02T09:22:07.730 に答える