私のウェブページのモバイル版のデスクトップモジュールを再利用しようとしています。すべてのmodule.less参照variables.less
- 主にIDE(PhpStorm)のためだけでなく、私が本当に好きな一見で依存関係を持つためにも。ハウツーは実際に変数をインポート/オーバーライドせずにLESSファイルを参照する
今まで私は、このレッスンルールが実際に参照していると思っていました。実際はそうではありません。ファイルは本当に(1回)含まれていますが、出力はありません(lessドキュメントを参照)。その結果、私のモバイル変数は無効になります。
├ desktop/
│ ├ modules/
│ │ └ foobar.less
│ │ > @import (reference) "../variables.less"
│ ├ main.less
│ │ > @import "variables.less"
│ │ > @import "modules.less"
│ ├ modules.less
│ │ > @import "modules/foobar.less"
│ └ variables.less
│ > @bundle: 'desktop'
│
└ mobile/
├ main.less
│ > @import "variables.less"
│ > @import "modules.less"
├ modules.less
│ > @import "../desktop/modules/foobar.less"
└ variables.less
> @bundle: 'mobile'
モバイルmobile/main.less
をコンパイルした後、結果は、@bundle
が'desktop'
に等しくなります。
のみ可能 "参照"変数はありませんか?他の提案は歓迎されます。
あなたは '*何も含まれていますが* variables.less'ん変数?もしそうでなければ、あなたはおそらく完全に誤解して、 '(参照) 'を悪用するでしょう。これは実際には「[インポートされた*スタイル*をコンパイル済みの出力に追加しない]」(http://lesscss.org/features/#import-options-reference)です。 *変数*(CSS *スタイルではない)に関しては、実際に重要なのは[遅延評価](http://lesscss.org/features/#variables-feature-lazy-loading)です。特定の例では、これは最終的に異なる 'variables.less'ファイルをインポートする順番になり、'(参照) 'とは何の関係もありません。 –
可変変数の寿命の短縮、範囲の変更、上書き/上書きの詳細については、https://github.com/less/less.js/issues/2442#issuecomment-73841148を参照してください。 –
@ seven-phases-maxはい、言及したように私は 'reference'の実際の動作を誤解しました。そして、はい、私のファイルには変数だけが含まれています。実際には両方のパッケージで同じですが、場所によって値が異なります。だから、実際に継承がうまくいくでしょう。そのGithubのリンクに感謝します。ディスカッションは非常に興味深いものです。特に、 '&{@import" package ";}' –