2013-08-22 9 views
9

変数とミックスインのような共有されたものを1つの場所、つまりcssマニフェストファイルにインポートし始めました。今、私はいくつかのCompassミックスインをファイルへのダイレクトパスを使ってインポートしています。@import 'compass'にはフレームワーク全体が含まれていますか?

私の質問は、@import 'compass'がフレームワーク全体をapplication.cssに挿入するのか、それともsassファイルの参照を参照して必要なミックスインだけを読み込むことで行われますか?

私はすべてを含めたくありません。

答えて

13

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秒しかかかりませんでした。

+0

詳細を教えてください。 「これらのモジュールは出力CSSに何も注入しません」と「SASSをCSSにコンパイルするのに必要な時間を短縮します」。理解できません。あなたは何も注入しないと言ったが、コンパイル時間が短縮されます。コンパイルしないと、モジュールが出力に注入されますか? – wryrych

+0

@WojtekRyrych更新された回答を参照してください。 – Pavlo

+0

OKです。したがって、 '@ import'はモジュールを参照するだけですが、出力CSSにコードを挿入するのは' @include'です。明確化のためにありがとう! – wryrych

関連する問題