1

短い: 関数/変数がまだ定義されていない場合にのみ、「オンデマンド」でより少ないファイルをインポートする可能性はありますか?

LONG: ページのスタイルを含む LESS ファイルがあるとします。と呼びましょうstyles.less。さらに、さらに 5 つの LESS ファイルがあります。そこにはすべて、一般的なデザイン プリミティブが含まれています。たとえば、私が多くのプロジェクトで使用している情報ボックスのデザインなどです。これが にマージされていない理由styles.lessです。と仮定しましょう.infobox {}。次に、 が見つからない
場合に、その 5 つのファイルをインポートすることを「試みる」ことは何とか可能ですか? 私は、lessc (ノードのモジュール) を介したコンパイルと、Web ブラウザーでの「オンザフライ」コンパイルの両方に興味があります。.infoboxstyles.less

私の例で状況が十分に明確になることを願っています。そうでない場合は、お気軽にコメントしてください。質問を編集して詳細情報を提供します。

4

1 に答える 1

1

これを完全に自動化する方法を見つけることができませんでした。@importまた、リクエストを減らすためにこの機能を望んでいるのか、それとも単に最終的な CSS を減らして不要なアイテムを読み込まないようにするのか、私にはわかりません。

完全に自動化する必要がなく、生成される CSS を削減したいだけで、これを実行したいクラスがあまりない場合は、styles.lessファイルで次のようなことを行うことができます。

//have at the top of the file some variables set to 0 or 1 if the class
//is present or absent in that file
@usesClass-infobox: 0;

//set up a mixin to load it if NOT in the file
.setClass-infobox(@set) when (@set = 0) {
  @import 'infobox.less'; 
}

//a default mixin to do nothing otherwise
.setClass-infobox(@set) {}

//call the mixin
.setClass-infobox(@usesClass-infobox);

もちろん、これはプロセスの自動化にはあまり役立ちません。結局のところ、ファイルに.infoboxないことがわかっている場合は、追加のmixin をチェックすることなくとにかく追加するだけです。これが与える唯一の本当の価値は、基本的にコーダーに「ねえ、ここに含めていない場合、この機能のためにロードできるモジュールがあるので、教えてください、あなたはそれを含めていますか? ?」styles.less@import

繰り返しますが、これがあなたの目的を完全に解決するかどうかはわかりません。状況によっては一部の人に役立つ可能性があるため、私はそれを提供しました。

于 2013-01-21T20:59:18.640 に答える