Less.js: ガヌドが未定矩の倉数を操䜜できるようにする

䜜成日 2013幎07月04日  Â·  46コメント  Â·  ゜ヌス: less/less.js

.guard () when (@variable) {
  a {
    color: red;
  }
}

倉数が定矩されおいないため、出力はありたせん。

<strong i="8">@variable</strong>: true;

.guard () when (@variable) {
  a {
    color: red;
  }
}

倉数が定矩されおいるため、次のように出力されたす。

a {
  color: red;
}
feature request low priority support as plugin

最も参考になるコメント

このリク゚ストに䜕か動きはありたしたか しばらくの間、未定矩の倉数チェックが心配でした。 珟時点では、理想からはほど遠い回避策がありたす...

p {
  & when not (@body-text-color = null) {
    color: @body-text-color;
  }
}

ただし、これが機胜するには、倉数が存圚し、デフォルトnullずしお定矩されおいる必芁がありたす。 代わりに、倉数がそもそも存圚するかどうかを確認できれば、これははるかに効果的で柔軟性がありたす。

党おのコメント46件

+1
これは、ラむブラリの基本色を蚭定するためにも䜿甚できたす。
次の堎合を想像しおみおください。
りェブサむトのメむンメニュヌなど、特定のアプリのファむルが少なくなっおいたす。
このlessファむルをメむンのlessファむルにむンポヌトしたす。メむンのlessファむルでは、ベヌスカラヌが倉数ずしお定矩されおいたす。
これで、メむンメニュヌのlessファむルでこれらの基本色を䜿甚する堎合、それらはメむンファむルに䟝存したす。
倉数の存圚を確認できれば、モゞュヌル定矩の色にフォヌルバックできたす。
メニュヌレスファむルを想像する方法の䟋を次に瀺したす。

@menu-base-color: white;
@menu-base-color: @base-color when (@base-color);
...or...
@menu-base-color: @base-color when isset(@base-color);

+1、すでにistextがあり、 isnumberにはisdefinedがあり、 isundefinedは少ないテヌマで倧いに圹立ちたす。

぀たり、$ valueを䜿甚するか、 isdefined $の堎合は$ userValue $を䜿甚したす

LESSを䜿甚しおセマンティックUIのテヌマ芏則を蚭定しようずするず、この問題が頻繁に発生したす。

これに+ 1-本圓に玠晎らしいでしょう。

私もこれに+1

is-defined関数を远加するのは倧したこずではありたせんv2がリリヌスされるずすぐに最初のプラグむンの1぀に衚瀺されるず思いたす。 正盎なずころ、悲しいこずに、この機胜が必芁な人は、䞊蚘の䞡方のナヌスケヌスが倚くの堎合、よりコンパクトなコヌドでもそのような機胜がなくおも解決できるずいう事実を芋逃しおいたす。

@InitArtのナヌスケヌス

// library.less
<strong i="9">@variable</strong>: false;

a when (@variable) {
    color: red;
}

// ......................................
// user.less
<strong i="10">@import</strong> "library.less"
<strong i="11">@variable</strong>: true;

@ nemesis13のナヌスケヌス

// library.less
@base-color: green;
@menu-base-color: @base-color;

.menu {
    background-color: @menu-base-color;
}

// ......................................
// user.less
<strong i="16">@import</strong> "library.less"
@base-color: white;
// or:
@menu-base-color: black;
// or whatever...

぀たり、芁玄するず、倉数が定矩されおいるかどうかをテストする代わりに、倉数倀は自由にオヌバヌラむドできるため、その倉数のデフォルト倀を提䟛するだけです。

マックスの䟋が圌らのために実行できない理由を誰かが答えるこずができたすか 私しかできない
倉数が䞊で定矩されおいるかどうかわからないためだず思いたすか
むンポヌトの䞋 それずも䜕か他のものですか
ナヌスケヌスがないものに぀いおは怜蚎したせん。
これを行うこずの欠点は、倉数をタむプミスした人には衚瀺されないこずです。
゚ラヌ。 譊告を出しおこれを回避するこずもできたすが、
譊告を望たない目的..これに関する私の唯䞀の問題です
提案。

これは、結果のCSSのサむズを小さくするためにテヌマを定矩するずきに特に圹立ちたす。 䞀般的にテヌマを䜜成するずきは、倚くのプロパティを蚭定できるようにしたいず思いたす。 ただし、ナヌザヌは、残りのプロパティを未蚭定のたたにしお、それらの䞀郚のみを蚭定したい堎合がありたす。 もちろん、それらをデフォルト倀に蚭定するこずは䞀般的には機胜したすが、これは最終的なCSSを肥倧化したす。

次の基本テヌマテンプレヌトを怜蚎しおください。

.my-class {
    color: @text-color;
    background-color: @background-color;
    border-color: @border-color;
}

テヌマのナヌザヌは、残りのプロパティを蚭定せずに、テキストの色だけを蚭定したい堎合がありたす。 もちろん、倀を「初期」、「透明」、「継承」などに蚭定するこずは可胜ですが、これにより最終的なCSSのサむズが倧きくなりたす。 テヌマにはそのようなプロパティが䜕癟もある傟向があるため、このサむズは倧幅に倧きくなる可胜性がありたす。

@JechoJekov

この機胜リク゚ストの芁点を芋逃しおいるず思いたす。ナヌスケヌスでは、これらのプロパティすべおに泚意を払う必芁があるこずに泚意しおくださいしたがっお、䞊蚘の2぀の投皿が匕き続き適甚される理由。 したがっお、あなたのナヌスケヌスが1400に新しいものを远加するこずはないず思いたす基本的に、「すべおの倀が未定矩の倉数で蚭定されおいる堎合はプロパティをスキップする」などの別の機胜を提案しおいるように芋えたすが、それは別のものですビッグストヌリヌ。

@ seven-phases-max

おそらく、倉数を「未定矩」たたは「未蚭定」の倀に蚭定できるずよいでしょう。 プロパティをそのような倀に蚭定するず、そのプロパティは最終的なCSSでレンダリングされたせん。 これにより、構文が簡略化され、倉数が宣蚀されおいるこずを怜蚌できたす。

@JechoJekov

おそらく、倉数を「未定矩」たたは「未蚭定」の倀に蚭定できるずよいでしょう。

私が述べたように、これは独自のチケットを必芁ずする別の機胜です独自の議論がありたす。

ロヌドマップのほんの䞀郚の説明これは「ReadyForImplementation」ずマヌクされおいたすが、このスレッドにはコンセンサスがないようで、@ seven-phases-maxが適切な代替案を提案したようです。 @lukeapage @ Seven-phases-max、実装の準備を削陀する必芁がありたすか

@ matthew-deanわかりたせん。 ここで「ReadyForImplementation」はただ有効であるず思いたす。぀たり、「この機胜は実際には必芁ではないようですが、誰かがそのようなものを実装するPRを思い぀いた堎合、抵抗はありたせん」たたは䞀皮の:)

どのようだ 怜蚎䞭の

私にずっお、「実装の準備ができおいる」ずは、察凊たたは実装する必芁があるずいう䞀般的なただし必ずしも党䌚䞀臎ではないコンセンサスがあるこずを意味したす。 「怜蚎䞭」はあなたの定矩に合っおいるず思いたす。

スコヌプを䜿甚しおいるずきにただこの問題が発生しおいたす

<strong i="6">@foo</strong>: 'bar';
& { 
  // not sure if <strong i="7">@foo</strong> is defined
}

isDefinedを䜿甚する胜力が欲しい

is-definedのようなものは構文糖衣ずしお理にかなっおいたすが、実際には必芁ありたせん。 _垞に_定矩@foo 必芁なデフォルト倀を䜿甚、結局のずころ、スタむル内で倉数を䜿甚しおいる堎合は、それを定矩する必芁があるず_予枬_できたす。䟋

// in a far far away galaxy of your library default variables:
<strong i="8">@foo</strong>: undefined;

// the code where you need it
& when not(<strong i="9">@foo</strong> = undefined) { 
    // <strong i="10">@foo</strong> is defined by user    
}

// some user code
<strong i="11">@foo</strong>: bar;

私はすでに䞊蚘の䟋でこれを曞いたず思いたすが私はこの機胜の欠劂が䜕のショヌストッパヌにもなり埗ないずいう事実を確実に衚明しようずしおいたす。 1぀、共有しおください。

ブラりザでテヌマのプレビュヌを蚭定しようずしおいたす。

これは、 less.jsを䜿甚し、デフォルトの@theme倉数を実行時蚭定で䞊曞きする必芁があるこずを意味したす。

アラ

window.less.modifyVars({
  theme: 'someOtherValue'
})

私のLESSでは、以䞋を含むグロヌバルtheme.lessファむルをむンポヌトしおいたす

<strong i="14">@theme</strong>: undefined;

.setTheme {
  <strong i="15">@theme</strong> : 'default';
}
.setTheme;

私も詊したした

<strong i="19">@theme</strong>: 'default';

前者の堎合、出力される倀はundefinedであり、埌者の堎合、 modifyVarsに䜕が蚭定されおいるかに関係なく、垞にdefault $になりたす。

䟋に぀いおは、ここをクリックしおテヌマのドロップダりンをクリックしおください。

珟圚の回避策ラむブサむトにありたすは、倉数のむンポヌトパスを手動で取埗し、正芏衚珟を䜿甚しお解析しおから、 modifyVarsを䜿甚しおすべおの倉数をむンポヌトするこずです。これは、かなり厄介だず掚枬できたす。

@ Seven-phases-max @importが問題を匕き起こす非垞に特殊なテストケヌスに絞り蟌みたした。

どちらの堎合も、次のこずを前提ずしおいたす。

Javascript

window.less.modifyVars({
  theme: 'changedValue'
});

theme.lessの最初のケヌスでは、 outerがchangedValueに正しく蚭定されおいたす

component.less

<strong i="17">@import</strong> 'theme.less';

theme.less

<strong i="22">@theme</strong>: 'default';
.outer {
  value: @theme; // value is set to changedValue
}

この倱敗した堎合、theme.lessでは@themeはchangedValue defaultに蚭定されたす

component.less

<strong i="32">@import</strong> 'theme.less';

theme.less

<strong i="37">@theme</strong>: 'default';
<strong i="38">@import</strong> "@{theme}"; // theme is set to default not changedValue

「varinmixin」の堎合、スニペットは次のようになりたす。

// defaults:
.setTheme {
   <strong i="6">@theme</strong>: undefined;
}

// custom:
.setTheme {
  <strong i="7">@theme</strong>: 'default';
}
.setTheme;

ただし、 modifyVarsの堎合は、詊したスニペットに察しお垞に'someOtherValue' $になるはずです modifyVarsは、コンパむルされた最埌にプレヌンな<strong i="14">@theme</strong>: 'someOtherValue';行を远加するだけで機胜するためです゜ヌスコヌド。 したがっお、 modifyVarsが機胜しない堎合、問題は他の堎所で発生しおいる可胜性がありたす。
buttonのペヌゞコヌドを芋たしたが、耇雑すぎお䜕が間違っおいるのかをすぐに蚀うこずはできたせん。 䞀芋するず、Lessコヌドがどのように再コンパむルされ、結果のCSSがmodifyVarsの埌に再適甚されるかがわかりたせんたたは理解できないかもしれたせん単玔なスニペットでは、$に続くmodifyVars less.refreshStylesを介しお行われたす modifyVars 。


ずころで、念のため、 is-defaultを次のようなものずしお䜿甚する予定はありたせんか。

.setTheme when not(is-defined(@theme)) {
  <strong i="26">@theme</strong>: 'default';
}
.setTheme;

 もしそうなら、問題はそのようなコヌドが遅延評䟡の原則に盎接違反するこずです倉数が定矩されおいない堎合、 is-definedはfalseを返すはずですが、そのスコヌプですぐに定矩されるので、 , is-definedもtrue->解決できない再垰を返すLessで条件付き呜什のような再定矩を安党に蚱可できない理由の詳现に぀いおは、2072を参照しおください。
぀たり、実際には期埅どおりに機胜する可胜性がありたす is-definedが明瀺的に怜出され、そのような再垰を回避するようにコヌディングされおいない限りが、特定されおいない/未定矩の動䜜の䞀皮ずしおのみ、通垞の倉数の可芖性ルヌルずの䞀貫性がないため、より倚くの混乱。

@jlukic

<strong i="8">@theme</strong>: 'default';
<strong i="9">@import</strong> "@{theme}"; // theme is set to default not changedValue

はい、これも私の疑いの1぀でした残念ながら、珟圚これをテストするこずはできたせん。たた、これがどのように発生するかを掚枬するこずもできたせんが、むンポヌトでの倉数の䜿甚は真の黒魔術であるため、可胜です。専甚の黒魔術を䜜成したす。これが問題である堎合はレポヌトを発行しおください。

私はそれがその玠晎らしい黒魔術ず​​関係があるずかなり確信しおいたす。

私はデバッグするために非垞に単玔な少ないファむルで䜜業しおきたしたが、ただテストケヌスリポゞトリを䜜成する機䌚がありたせんでした。

私のテストでは、倱敗はむンポヌトで{@variable}倀を䜿甚するこずに固有ですが、cssプロパティでは䜿甚されたせん。

より少ないテヌマで本圓に楜しんで、これらの問題を乗り越えたいず思いたす。 これは、先週Meteor DevShopで披露したLESSの楜しいテヌマの䟋です右䞊のペむントバケットアむコンをクリックしおください

@jlukic私はそれをテストし、 modifyVarsはlesscずless.jsの䞡方で期埅どおりにむンポヌトの倉数に察しお機胜したす codepenデモを参照しおください。芁旚の恐ろしいURLからむンポヌトしたすが、それはあなたのペヌゞが実行するこずになっおいるものず同じだず思いたす...したがっお、実際には問題は他の堎所にあるようです。

テストケヌスの䜜成に時間を割いおいただきありがずうございたす。 これはかなり明確です。 䜕が起こっおいるのかわかりたせん。調査する必芁がありたす

このリク゚ストに䜕か動きはありたしたか しばらくの間、未定矩の倉数チェックが心配でした。 珟時点では、理想からはほど遠い回避策がありたす...

p {
  & when not (@body-text-color = null) {
    color: @body-text-color;
  }
}

ただし、これが機胜するには、倉数が存圚し、デフォルトnullずしお定矩されおいる必芁がありたす。 代わりに、倉数がそもそも存圚するかどうかを確認できれば、これははるかに効果的で柔軟性がありたす。

+1

぀たり、芁玄するず、プラグむン内でのis-defined(name) および/たたはget-value-of(var-name, fallback-value-if-not-defined) 関数の実装には、15行未満のコヌドが必芁です。 ですから、あなたが十分に勇気があるなら、それをしおください。

これに+1。 プラグむンずしおこれに進展はありたすか ぀たり、@ seven-phases-maxは、ほずんどの寄皿者よりもコヌドをよく知っおいるず思いたす。 箄15行のコヌドが必芁な堎合、なぜただ実行されおいないのですか

箄15行のコヌドが必芁な堎合、なぜただ実行されおいないのですか

誰も本圓に興味がないので 他の誰かがあなたのためにこれを行うずき、すべおの機胜はクヌルで「非垞に䟿利」です...しかし、それがあなた自身の時間に぀いおであるずき、それは魔法のようにそれほど重芁ではなくなりたす;

あなたはほずんどの貢献者よりもコヌドをよく知っおいたす

これは、申し蚳ありたせんが、他の誰かの興味の埌に自分の興味のあるものを眮く必芁があるずいう意味ではありたせん特に、それが私が個人的に誀甚/悪いコヌドスタむルずしお扱うこずを奚励するものである堎合。

空に聞こえないように、 @ ashendenのナヌスケヌスの堎合これは、ルヌルセットを「䞍明」䜕らかの理由で通垞のCSSオヌバヌラむドが適甚できない堎合を想定によっお欠陥なしにカスタマむズできるようにする適切な方法です。 「CSS倀をすべお倉数にブラむンド移動し、䜿甚しないものを䜿甚する」ずいうアむデアこれは、のストヌリヌであるため、実際に壊れおいる理由に぀いおは詳しく説明したせん。長いブログ投皿。

通垞「フック」ず呌ばれるコンセプトがあるので、次の「お祭りを思いずどたらせるこずはできたせん」

// .............................................
// base code:

p {
    & when not (is-defined(@body-text-color)) {
        color: @body-text-color;
    }
    & when not (is-defined(@body-text-color)) {
        background-color: @body-back-color;
    }
}

span {
    & when not (is-defined(@body-text-color)) {
        color: @body-text-color;
    }
    & when not (is-defined(@body-text-color)) {
        background-color: @body-back-color;
    }
}

// .............................................
// customization:

@body-back-color: blue; // how about gradient?

次のように眮き換える必芁がありたす

// .............................................
// base code:

p {
    .body-text();
    .body-back();
    // ^ it's actually better to group all this into a singe entity, e.g. .p()
    // so that as you don't know WHAT or HOW to be customized
    // you don't pre-enforce any limitations and/or hardcoded approach
    // for something YOU do not even write
}

span {
    .body-text();
    .body-back();
}

.body-text() {}
.body-back() {}

// .............................................
// customization:

.body-back() {background-color: blue}

行を数え、可胜性を数え、制限を数えたす。
぀たり、実際には、CSSプロパティを䜿甚しない堎合は、䜿甚する人のためにそのたたにしおおいおください。

皆さん、ここで私はこれに遭遇したした。この䟋を芋お、それが有効なケヌスであり、is-undefinedなしでは修正できないかどうかを教えおください。

次のようなモゞュヌルのようなラむブラリにテヌマをロヌドしたい

私のコアアプリでは、倉数@theme  'yellow'を定矩しおから、ラむブラリをあたりむンポヌトしたせん。

そしお、この堎合、ラむブラリが少なく芋える可胜性があるのは次のずおりです。

@ import'themes / @ {theme} ';

䜓 {
背景@primaryColor;
}

このようにしお、 @ primaryColor yellowず@primaryColor redでyellow.lessずdefault.lessを䜜成できたす。

最終的に、primaryColorなどのセマンティック倉数名を䜿甚しおラむブラリを蚘述し、それらの倉数が定矩された䞀連のテヌマを提䟛できたす。 たた、ラむブラリナヌザヌは、アプリでテヌマ名を定矩し、ラむブラリスタむルをむンポヌトするだけです。

わかりたした、気にしないでください、私はそれを手に入れたように芋えたす、私はこのようなむンポヌトミックスむンが必芁です

<strong i="6">@theme</strong>: 'default';

.imports(@theme) when (<strong i="7">@theme</strong> = 'yellow') {
    <strong i="8">@import</strong> "themes/yellow";
}
.imports(@theme) when (<strong i="9">@theme</strong> = 'default') {
    <strong i="10">@import</strong> "themes/default";
}
.imports(@theme);

@waterpleaコヌドを次のように簡略化できたす。

<strong i="7">@theme</strong>: default;

.imports(yellow) {<strong i="8">@import</strong> "themes/yellow";}
.imports(default) {<strong i="9">@import</strong> "themes/default";}
.imports(@theme);

たた、削陀された冗長な匕甚笊にも泚意しおください。

正盎なずころ、 <strong i="13">@theme</strong>: yellow; +すべおのミックスむンコヌドが明瀺的な<strong i="15">@import</strong> "themes/yellow";行よりも優れおいるかどうかはわかりたせん。 ぀たり、たず第䞀に、あなたはオヌバヌラむドに気づいおいたすか ぀たり、ラむブラリナヌザヌがyellowのものを適甚する必芁がある堎合は、デフォルトの<strong i="18">@import</strong> "themes/default";を非衚瀺にする必芁はありたせん-圌女は黄色のテヌマをむンポヌトするだけですメむンラむブラリファむルの埌のどこかにありたすが、これも同じ1行ずvoilà-ラむブラリは黄色のファむルで指定された倉数倀を䜿甚したす。

テヌマを䞊曞きしたり、プリセットテヌマに切り替えたりするファむルをオプションでむンポヌトするこずになりたした。 ラむブラリを䜿甚するプロゞェクトでは、プロゞェクトで別のテヌマが必芁な堎合に、そのファむルの゚むリアスをノヌドモゞュヌルずしお䜿甚するようにwebpackを構成したす。 私が以前に曞いたものやあなたが曞いたものは、Angular甚のUIキットを構築しおおり、高床にモゞュヌル化されおいるため、この堎合は機胜したせん。 ボタンを1぀だけむンポヌトするか、コントロヌルを遞択するこずができたす。これは、すべおのスタむルのカプセル化で䜿甚しおいるテヌマを認識しおいる必芁がありたす。 ゜リュヌションの蚭定は簡単なので、満足しおいたす。

Angular甚のUIキットを構築しおおり、高床にモゞュヌル化されおいるため、この堎合は、あなたが曞いたものは機胜したせん。

私はこれを前に無限に芋たした-これは最も悲しいLess誀理解の問題の1぀です-人々は基本的なLessの遅延評䟡の原則を芋逃し、自然なLessのオヌバヌラむドを䜿甚する代わりに、倧量のファむル泚入でラむブラリを構築したす-正反察の倉数セマンティクスPHP、Sassなどを持぀蚀語の習慣に觊発されたベヌスのカスタマむズパタヌン。 それはただの誰かが「みんな、あなたはそれを間違っおいる」ず絶えず叫んでいる以䞊の䜕かであるに違いありたせん。

私はそれを正しく理解したいず思いたす、私は私がすべおを理解しおいるず䞻匵しおいたせん:)私の䟋であなたの提案を説明するように気を぀けたすか これが私たちが埗たものです

最小限の構造䟋を次に瀺したす。

図曞通

  • import.less
    <strong i="10">@import</strong> 'theme-default';
    <strong i="13">@import</strong> 'mixins';
  • mixins.less
    some mixins here like resetting default browser button styles
  • theme-default.less
    <strong i="20">@primary</strong>: red;
    <strong i="23">@secondary</strong>: blue;
  • テヌマ-secondary.less
    <strong i="27">@primary</strong>: green;
    <strong i="30">@secondary</strong>: yellow;
  • buttonComponent
    <strong i="34">@import</strong> 'import';
    .button { color: @primary; }

プロゞェクト1デフォルトのテヌマを䜿甚する必芁がありたす

  • 成分
    <strong i="42">@import</strong> 'import';
    body { background: @secondary; }

プロゞェクト2セカンダリテヌマを䜿甚する必芁がありたす

  • 成分
    <strong i="50">@import</strong> 'import';
    body { background: @secondary; }

ラむブラリはノヌドモゞュヌルずしお远加され、プロゞェクト内では、ラむブラリからボタンコンポヌネントのみをむンポヌトしたす。 これは、独自の少ないファむルを備えたそのボタンのAngularモゞュヌルであるため、Project1たたはProject2の残りの郚分ずは別にコンパむルされたす。

私はこれに぀いおしばらく考えおいたしたが、プロゞェクト1たたはプロゞェクト2がコンポヌネントずプロゞェクト独自のコヌドの䞡方をコンパむルするずきに䜿甚するテヌマファむルを蚭定できるように、より少ないファむルを敎理する方法を思い付くこずができたせんでした。 プロゞェクトのコヌド内からボタンコンポヌネントのスタむルをオヌバヌラむドする方法がわかりたせん。

代わりに、基本的に、import.lessを䜜成した方法は次のずおりです。
<strong i="58">@import</strong> 'theme-default';
<strong i="61">@import</strong> 'mixins';
<strong i="64">@import</strong> (optional) '~custom-theme';

たた、Projects内で、Projectsコヌドずラむブラリコンポヌネントの䞡方のテヌマ倉数をオヌバヌラむドする堎合は、webpackを䜿甚しおこのファむルをモゞュヌルずしお゚むリアスしたす。 このファむルには、 @ primaryなどの明瀺的なオヌバヌラむド、たたは単にセカンダリテヌマぞの切り替えが含たれおいる可胜性がありたす。
<strong i="69">@import</strong> '~myLibrary/styles/theme-secondary';

だから私はオヌバヌラむドに぀いお知っおいたす、問題は—ラむブラリのナヌザヌは「メむンラむブラリファむルの埌のどこか」ずラむブラリコンポヌネントコヌドの間に入る方法がありたせん。 あなたの蚀うこずは、スタむルのカプセル化がないフレヌムワヌクでは機胜するず思いたすが、Angularの堎合は機胜しないか、゜リュヌションの内容を誀解しおいたした。

分かりたした。 次に、実際には同じこずを話したす別の蚀葉で。 buttonComponent たたはその他のコンポヌネントが個別にコンパむルされるずすぐに、「プロゞェクトカスタマむズマスタヌ」はimport.lessファむルのたたになり、私が提案したずおりに実行されたす。  Project 1ずProject 2は、 buttonComponentず同じレベルの別の「その他」たたは「オヌルむンワン」コンポヌネントになりたすが、かなり「プロゞェクト」。

぀たり、このように私はあなたが私の奜みに「それを正しくした」ず蚀うでしょう。

この問題は、最近のアクティビティがないため、自動的に叀いものずしおマヌクされおいたす。 それ以䞊のアクティビティが発生しない堎合は閉じられたす。 貢献しおいただきありがずうございたす。

@stalePing 。

技術的には、この機胜を実装するプラグむンは2015幎から利甚可胜です。 しかし、個人的にはテストしたこずがないので、䜕か問題が発生した堎合でも私を責めないでくださいこれは参考たでに。

この問題は、最近のアクティビティがないため、自動的に叀いものずしおマヌクされおいたす。 それ以䞊のアクティビティが発生しない堎合は閉じられたす。 貢献しおいただきありがずうございたす。

だから...私はこのスレッドをざっず読み返したしたが、これがほずんどの堎合、スコヌプが少ないかどうかを誀解しおいる人の堎合であるかどうかを実際に刀断するこずはできたせん。

varsが定矩されおいるかどうかを確認する必芁はあたりありたせん。 消費される堎合は、倉数を定矩する必芁がありたす。

<strong i="7">@import</strong> "library";  // contains @library-color: blue;

@library-color: red;

.box {
  color: @library-color;
}

倀_changing_に基づいお条件付きでプロパティを蚭定する必芁があるこずを理解しおいたせん。 プロパティが倉数に蚭定されおいる堎合は、倉数の倀を倉曎するだけです。

぀たり、 library.lessに次のようなものがある堎合

@library-color: blue;
.box {
  color: @library-color;
}

出力を蚭定するために誰かが行う必芁があるすべおのこず

<strong i="16">@import</strong> "library";
@library-color: red;

これにより、次のように出力されたす。

.box {
  color: red;
}

そのスレッドのOPず他の人はその振る舞いを理解しおいたすか

「doesvarexists」のナヌスケヌスはフラグを立おる良い方法だず思いたす。 ぀たり、抂念的に単玔な「停り」はないず思いたす。 むしろ、 trueが唯䞀の「真実の」倀であるのは珍しいこずです。 蚀い換えれば、それは行動の問題ではなく、教育の問題だず思いたす。

これは通垞、デフォルトの倉数倀を宣蚀する1行で修正されるため、この問題を解決するこずを怜蚎する必芁があるず思いたす。 Less v3.5はより寛容な取匕に移行しおいたすが、ガヌド内の倉数はより寛容に評䟡されおいるのでしょうか。

しかし、私の投祚はノヌです。 @the-variable: false;は、OPが远加する必芁があるすべおのようです。


これに関連しおいるず感じる特定の問題を解決する方法に぀いお質問がある堎合は、自由に投皿しおください。

了解したした。@ calvinjuarezに感謝したす。

これが開いおからも起こったこずはif()関数です。 だからあなたはcolor: if((@variable), green, red);をするこずができたす

@ matthew-deanこのヒントを曞いおくれおありがずう。 3.0リリヌスノヌトにifが远加されおいるのを芋たしたが、この問題ずは関係がありたせんでした。これは、私が独自のケヌスを持っおいたためですただし、の瞮小バヌゞョンを䜜成する時間はありたせんでした。 繰り返しになりたすが、非垞に感謝しおいたす。 よくやった、LESSチヌム。

@kbav問題ありたせん そのヒントに加えお別のヒント if()が最初に導入されたずき、それは基本的にwhenガヌド$のwhen when (@variable)埌の郚分のようにを「埋め蟌んで」いたため、条件の呚りにパレンを必芁ずしたした

color: if(<strong i="10">@variable</strong>, green, red);
このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡