SASSを使用してコンパイルされたCSSファイルにタイムスタンプを自動的に追加することは可能ですか?例えば
/* CSS Compiled on: {date+time} */
...compiled css goes here...
SASSとCompassのドキュメントを確認しましたが、そのような機能については触れていません。
SASSを使用してコンパイルされたCSSファイルにタイムスタンプを自動的に追加することは可能ですか?例えば
/* CSS Compiled on: {date+time} */
...compiled css goes here...
SASSとCompassのドキュメントを確認しましたが、そのような機能については触れていません。
このための組み込みの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
*/
SCSSのコマンドラインバージョンを使用している場合は、次の操作を実行できます。
sass-timestampをインストールします
gem install sass-timestamp
次のようなコード内で使用します(詳細については、ドキュメントを参照してください)
/* Compiled on #{timestamp()} */
コマンドラインで要求する
scss -r sass-timestamp ...
出力は
/* Compiled on 2015-02-02 13:01:40 +0800 */
注:#{unix_timestamp()}
UNIXタイムスタンプに使用します
誰もがそれを必要としているかどうかはわかりませんが(質問はずっと前に答えられているため)、簡単な解決策は、タイムスタンプ/日付を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コマンドを呼び出す前にタイムスタンプを書き込んでください。これにより、インストール、ビルド、またはその他の操作を行う必要がなくなります。