Less.js: node_modulesに必要な拡張機能

作成日 2017年10月12日  ·  23コメント  ·  ソース: less/less.js

私は今日問題を再現しようとしてきましたが、ついにnode_modulesディレクトリをハッキングして何かが発生しました。

基本的に、拡張子のないLESSファイルを含めることは機能しますが、これはわかっています...しかし... node_modulesディレクトリからの拡張子なしのインクルードは失敗します。

次のことを示す簡単なリポジトリを作成しました: https

<strong i="11">@import</strong> './one/two/three/four/test';機能します

のように: <strong i="14">@import</strong> 'thisisinnodemodules/one/two/three/four/test.less';
(拡張子が付いたnode_modulesから含まれていることに注意してください)

しかしながら:

<strong i="19">@import</strong> 'thisisinnodemodules/one/two/three/four/test';
(拡張子なしのnode_modulesから含まれていることに注意してください)

動作せず、次のエラーが発生します。

$ npm run buildStyles

> [email protected] buildStyles /Users/robert.huzzey/Sites/test/lessissue
> lessc styles.less styles.css

FileError: 'thisisinnodemodules/one/two/three/four/test' wasn't found. Tried - /Users/robert.huzzey/Sites/test/lessissue/thisisinnodemodules/one/two/three/four/test.less,/Users/robert.huzzey/Sites/test/lessissue/thisisinnodemodules/one/two/three/four/test.less,/Users/robert.huzzey/Sites/test/lessissue/node_modules/thisisinnodemodules/one/two/three/four/test,thisisinnodemodules/one/two/three/four/test.less in /Users/robert.huzzey/Sites/test/lessissue/styles.less on line 5, column 1:
4 // This does NOT work
5 <strong i="24">@import</strong> 'thisisinnodemodules/one/two/three/four/test';
6 

これがv3問題であるように見えるが、 v2ないことを示すために、いくつかのブランチを作成しました...これが予期される動作か望ましくない動作かを誰かが確認できます(私には思えません)これについて何かをオンラインで見つけるために)。

bug high priority

全てのコメント23件

また、今日この問題に遭遇しました。

この問題も確認します。 このリポジトリでnpmrundevのクローンを作成して実行することを再現できます。

https://github.com/acacha/AdminLTETinkerLaravelMix

lesscコマンドを使用しても問題がないため、これはおそらくwebpackの問題であることを考慮に入れてください。

@acacha私は同じことを考えましたが、そうでないことを証明しました..発生した問題で作成したリポジトリを見ると、webpackを使用していないことがわかりますが、まだこの問題があります:(

私はより少ないソースコードを掘り下げました、そしてこれはおそらくいくつかのことをテストし始める場所のように見えました:

https://github.com/less/less.js/blob/55380d49e96a6ed561cac4d13a774830aa3c17a3/lib/less-node/file-manager.js#L79 -L87

これが意図された動作ではないことがわかるまで、掘り下げたりPRを作成したりするのは気が進まない... Lessのメンテナの1人が確認できれば...修正を調査できてうれしい。

@robhuzzey node_modulesからのインポートは、最後の3.0アルファにのみ追加されました。インポートに.lessがないとインポートされないという意図された動作ではありません。 間違いなく3.0アルファ3のバグです。調べてくれてありがとう。

@ matthew-deanこの作業で修正したようです: https

この変更により、すべてのテストに合格します...レビュー/提案のためにPRを提出できますか?

@robhuzzey .less NPM devDependencyをpackage.jsonに追加してから、モジュール(おそらくimport-module.less )からファイルをロードするためのテスト( /tests/less )を追加する必要があります。 import-module.lessファイル?)テストを追加した後、テストが機能していることを確認するために、修正なしで壊れることを確認します。

@ matthew-deanに感謝します。修正を加える前に、現在のテストが壊れていることを確認しました...私が苦労しているのは、すべてのテストに.lessという名前が付けられていることです。

次の課題は、 node_modulesファイルを含めることだと思います。

@robhuzzey https://github.com/less/less.js/issues/3116もご覧ください。 そうでなければ、それは問題ありません。

@ matthew-確かにディーン...喜んでお手伝いします。

https://github.com/robhuzzey/less.js/tree/issue3115_extInNodePathでブランチのテストを行いましたが、期待どおりに機能しないようです(テストを含める方法を完全に理解していないと思います)この作品)。

私が間違っていることについて私に指摘していただければ幸いです:)

申し訳ありませんが@ matthew-dean私は現在海外で働いているので、別のタイムゾーンで作業しています...このlibのテストの作成方法を教えていただければ、問題を確認できますか? 私は定期的に数回試しましたが、それはおそらくあなたが簡単に私に言うことができる明らかな何かのように感じます:)

@robhuzzeyNP​​Mfile:構文に慣れていませんが、それ以外の場合は、正しく実行されているように見えます。 他に行う必要があるのは、 import-module.csstest/cssに配置することだけです。これは、テストが機能していることを確認できるように、期待される出力との比較ファイルとして使用されます。 grunt quicktestを実行する場合、出力CSSの改行やインデントなど、出力が少ないものに一致するように微調整する必要がある場合があります。 最初のテスト用に空のファイルを作成してから、期待される出力をコピーしてコンソールログに貼り付けることもできます。 .less省略されたモジュールからルールセットを出力している限り、それは重要なことです。 より堅牢なテストのために、実際にテストをブレンドして、一部(または1つ)が.lessインポートされ、一部がインポートされないようにします。

@ matthew-ディーンありがとう...結局はとてもシンプルでした..比較するためにCSSが必要でした!

以前はNPMのfile://構文についても知りませんでした...しかし今では、テストのためだけに実際のNPMパッケージを作成するのではなく、これが良いユースケースであることに気付きました:)

私は今PRを作成しました: https

ありがとう。

この問題は次の方法で解決されています//github.com/less/less.js/pull/3120

@robhuzzeyこの修正で新しいAlphaがいつリリースされるかについてのタイムラインはありますか? これは現在、外部ライブラリの変数をオーバーライドしようとすると、webpackビルドを壊します。

@ stefan-schweiger今夜か明日の夜に、これをリリースしようと思います。

少ないリポジトリのリリースに参加することに興味がある人は、ぜひここまたはTwitter @ matthewdeanersで私に連絡してください。

@ stefan-schweiger申し訳ありませんが、これを見ただけです。 Matthew Deanのようにリリースする機能がありません(正直に言うと、これがLessへの最初の貢献です)。

@ matthew-ディーン、おそらくお分かりのように、私は現在かなり忙しいですが、まもなく予定されている「ダウンタイム」が来るので、それでよければまた戻ってきますか? (現在行っていることにこれ以上追加することはできません)。

https://github.com/less/less.js/issues/3123を修正してくれた@ matthew-deanに感謝し解決した@robhuzzeyを心配する必要はありません。

この問題は、リリース3.0.1でも引き続き発生しました。
この問題を解決するために、手動でリリース2.7.3にダウングレードしました。

@allentcmそれは意味がありません。 2.7.3未満は、node_modulesフォルダーからまったくインポートされません。

@ matthew-dean @ allentcmを2.7.3にダウングレードしてもうまくいきました

@ matthew-dean @ allentcm @ babsonmattを2.7.3にダウングレードしてもうまくいきました👍

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