Less.js: ParseError:«DIV {幅:500px \ 9}»での認識されない入力

作成日 2014年09月26日  ·  13コメント  ·  ソース: less/less.js

成功の解析:

DIV {
    width: 500px\9;
}

ParseError:での認識されない入力:

DIV { width: 500px\9 }

この構文はhttps://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.cssにあります。

bug medium priority

最も参考になるコメント

https://github.com/less/less.js/issues/1538は、参照が少ないとしてbootstrap4 cssをインポートしているときに問題になりました(bootstrap4の距離はこれ以上ありません)。

<strong i="7">@import</strong> (less, reference) "~bootstrap/dist/css/bootstrap.css";
 @ /node_modules/bootstrap/dist/css/bootstrap.css (line 4475, column 31)
 near lines:

   <strong i="10">@media</strong> screen and (min-width: 0\0) {
     .progress {

これは本当にバグのようです、これが修正を得ることができるときの見積もりは@ Seven -phases-max

全てのコメント13件

はい、これは#284で言及されました。 しかし、これはバグと見なされるべきだと思います。
500px\9は、実際には無効な値を持つ有効なCSS構文500px?等しいため、単に無視します)。したがって、技術的には、Lessが渡す必要があります。

@harobedまた、出力cssではなく、ブートストラップ内でソースをインポートする必要があります。

@lukeapageコンパイルされたブートストラップファイルをインポートしたい理由がいくつかあり、Lessソースではありません。 特に今のところ、名前空間/プレフィックスでラップされたブートストラップクラスを取得する唯一の方法です(たとえば、 .bs {<strong i="6">@import</strong> (less) 'bootstrap.css';}または特定の動的に生成されたクラスを拡張します(Lessソース内では拡張できないため)。
ただし、これらの特定のケースでは、縮小されていないbootstrap.cssインポートは等しく、Lessによって処理されます( width: 500px\9;は期待どおりにコンパイルされるため)。 ですから、これは審美的な問題のように考えることができると思います。

十分に公平なことですが、 @ harobedにはそれを行う必要がある正当な理由があるかもしれません。
私たちはそれを修正する必要があることに同意しません。

ただし、縮小されていないバージョンでは解析されます...
これを回避する1つの方法は、セミコロンなしで匿名値を機能させることです。

これを匿名の値で機能させようとしましたが失敗しました。

私はこれを持っていました。

                var match = parserInput.$re(/^([^@+\/'"*`(;{}-]*)(;|(?=\}))/);
                if (match) {
                    return new(tree.Anonymous)(match[1].trim());
                }

しかし、それは空白の働きを少し変えます。 以下も入手しましたが、うまくいきませんでした。

                var match = parserInput.$re(/^(([^@+\/'"*`(;{}-\s]+|\s*?)+?)\s*(;|(?=\}))/);
                if (match && match[3]) {
                    return new(tree.Anonymous)(match[1]);
                }

それが将来の実装者(または私が再びそれを取り戻す場合は私自身)に役立つことを願っています

@lukeapage@harobedは、出力cssではなく、ブートストラップ内のソースをより少なくインポートする必要がある」ことを明確にしますか? 私はLessを初めて使用し、作成しているWordPressBootstrapテーマの\ 9で同じ問題を抱えています。 これは回避策ですか?

@harobed Bootstrap少ないソースには\9;またはエスケープされた~'\9'しかなく、これらのステートメントはコンパイラーによって問題なくコンパイルされます...したがって、実際にコンパイルしようとしているものと方法にのみ依存します。

そうですか。 私のテーマdevフォルダーには、srcとpublicの2つの子があります。 Bootstrapはsrc / less / bootstrapにあり、カスタムのLessファイルはsrc / lessにあります。 テーマ開発フォルダーから、lessc src / less / style.less public /style.cssでコンパイルします。

これは最近までうまくいきました。 clean-cssをインストールしてから、アンインストールしました。 その後、コンパイルは\ 9でエラーをスローし始めました。 私はnpmの人々と協力しましたが、クリーンアンインストールが行われているようですので、それが問題になることはないはずです。

任意のアイデアをいただければ幸いです。

@likethegoddess

その後、コンパイルは\ 9でエラーをスローし始めました。

エラーメッセージとそれが指す対応する行は通常役に立ちます。

はい、もちろん。 省略はご容赦ください。

最新のstyle.lessを復元し、コンパイルが再び機能しています。

お時間をいただきありがとうございます、@ seven-phases-max。


DIV { left: 500px\9 }
大丈夫ですが
DIV { left: -500px\9 }
まだ失敗しました

https://github.com/less/less.js/issues/1538は、参照が少ないとしてbootstrap4 cssをインポートしているときに問題になりました(bootstrap4の距離はこれ以上ありません)。

<strong i="7">@import</strong> (less, reference) "~bootstrap/dist/css/bootstrap.css";
 @ /node_modules/bootstrap/dist/css/bootstrap.css (line 4475, column 31)
 near lines:

   <strong i="10">@media</strong> screen and (min-width: 0\0) {
     .progress {

これは本当にバグのようです、これが修正を得ることができるときの見積もりは@ Seven -phases-max

このページは役に立ちましたか?
0 / 5 - 0 評価