the docs@import 'compass'
によると、CSS3、Typography and Utilitiesモジュールがインポートされます。これらのモジュールは出力CSSに何も注入しません。ミックスインだけを含んでいます。
特定のモジュールまたはサブモジュール(つまり@import 'compass/css3/image'
)にインポートを制限すると、SASSファイルをCSSにコンパイルするのに必要な時間が短縮されます。
たとえば、2つのファイルを作成できます。
// all.scss
@import "compass";
.candy {
@include background(linear-gradient(top left, #333, #0c0));
}
// module.scss
@import "compass/css3/images";
.candy {
@include background(linear-gradient(top left, #333, #0c0));
}
我々は彼ら(compass compile sass/FILENAME.scss
)をコンパイルする場合、結果のCSSは同じになります。
.candy {
background: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0%, #333333), color-stop(100%, #00cc00));
background: -webkit-linear-gradient(top left, #333333, #00cc00);
background: -moz-linear-gradient(top left, #333333, #00cc00);
background: -o-linear-gradient(top left, #333333, #00cc00);
background: linear-gradient(top left, #333333, #00cc00);
}
は、今コンパイルコマンドに--time
引数を追加して、結果を比較することができます。私のマシンでは、all.css
をコンパイルするのに1.516秒かかり、module.css
に対して0.108秒しかかかりませんでした。
詳細を教えてください。 「これらのモジュールは出力CSSに何も注入しません」と「SASSをCSSにコンパイルするのに必要な時間を短縮します」。理解できません。あなたは何も注入しないと言ったが、コンパイル時間が短縮されます。コンパイルしないと、モジュールが出力に注入されますか? – wryrych
@WojtekRyrych更新された回答を参照してください。 – Pavlo
OKです。したがって、 '@ import'はモジュールを参照するだけですが、出力CSSにコードを挿入するのは' @include'です。明確化のためにありがとう! – wryrych