1

ひどい質問文で申し訳ありませんが、説明させてください。

私が取り組んでいるプロジェクトでは、サーバー上の LESS ファイルのさまざまな依存関係を管理したいと考えています。プロジェクトの構造 (さまざまなコンポーネントがさまざまな方法でシンボリック リンクされている) のため、@import を使用して依存関係などを構築するだけでは、はるかに制限されます。

理想的には、セクションに必要な LESS ファイルのリストを吐き出したいだけです。

<link rel='stylesheet/less' href='/path/to/some/file.less' type='text/css' media='all' />
<link rel='stylesheet/less' href='/path/to/some/other-file.less' type='text/css' media='all' />

では、例えば file.less で変数や mixin が定義されていれば、それを other-file.less でも使えるようにしたい。

私が言えることから、それはうまくいきません。各LESSファイルは独自のスコープに存在しているようで、一方の変数などは他方では利用できません。

これは正しいです?スコープは、単一のファイルとその中の @imports に完全に制限されていますか? 私はそれがそうであると合理的に確信していますが、完全ではありません。

今のところ、私の回避策は私が望むよりも複雑です: 私は依存関係をサーバー側で構築し、それらをオンザフライで巨大な単一の development.less ファイルに変更しています。(本番用に、CSS をそのまま提供できるように、less をコンパイルして縮小するビルド プロセスがあることに注意してください)。

手がかりを得るために LESS ソース コードの browser.js を調べましたが、これが可能かどうか、または望ましいかどうかを最初にここで尋ねてみようと思いました。複数の JavaScript ファイルとインライン コードがどのように機能するかではないため、この動作には少し驚きました。

4

1 に答える 1

1

うまくいかない理由

それぞれ<link>の LESS ファイルはそのファイルを前処理し、単純な CSS 出力に解決します。html 自体の「スコープ」には変数も何も残らないため、2 番目<link>に使用できるものは何もありません。それが、一方が他方を読むことができない理由です。

可能な助け

LESS 1.5では、an@importを単なる参照にすることができます (したがって、直接出力をファイルにコンパイルすることはできません)。だからあなたother-file.lessはこれを行うことができます:

@import (reference) file.less;

それに必要な依存関係を取得するため。

于 2013-11-05T00:45:34.820 に答える