Less.js: التمديد مطلوب في node_modules

تم إنشاؤها على ١٢ أكتوبر ٢٠١٧  ·  23تعليقات  ·  مصدر: less/less.js

لقد كنت أحاول تكرار مشكلة اليوم وأخيراً لدي شيء عن طريق القرصنة في دليلي node_modules .

بشكل أساسي ، بما في ذلك ملف LESS بدون ملحق يعمل ، نحن نعلم هذا ... لكن ... بما في ذلك بدون ملحق من دليل node_modules فشل.

لقد قمت بإنشاء ريبو بسيط يوضح ما يلي: https://github.com/robhuzzey/lessimporttest

<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 كومينتر

كما واجهت هذه القضية اليوم.

أنا أؤكد هذه المسألة أيضا. يمكنك استنساخه وتشغيل npm run dev على هذا الريبو:

https://github.com/acacha/AdminLTETinkerLaravelMix

ضع في اعتبارك أن هذه ربما تكون مشكلة webpack لأنه لا توجد مشاكل عند استخدام أمر lessc.

acacha لقد فكرت في نفس الشيء ولكني أثبتت خلاف ذلك .. إذا رأيت الريبو الذي أنشأته في المشكلة المثارة ... يمكنك أن ترى أنه لا يستخدم حزمة ويب ولا يزال لدينا هذه المشكلة

لقد قمت بالتنقيب في الكود المصدري الأقل ، وبدا هذا على الأرجح مكانًا لبدء اختبار بعض الأشياء:

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

أنا متردد في بدء الحفر أو إجراء علاقات عامة حتى أعرف أن هذا ليس سلوكًا مقصودًا ... إذا كان أحد المشرفين على Less يستطيع تأكيد ذلك ... يسعدني التحقيق في الإصلاح.

robhuzzey تمت إضافة الاستيراد من node_modules إلى الإصدار 3.0 ألفا الأخير فقط ، وليس هذا سلوكًا غير مقصود أنه لن يتم استيراده بدون .less في الاستيراد. بالتأكيد خطأ في 3.0 alpha 3. شكرا لبحثك فيه.

@ Matthew-dean يبدو أنني أصلحته مع هذا العمل: https://github.com/robhuzzey/less.js/tree/issue3115_extInNodePath لكني لست واضحًا بشأن مكان إضافة اختبار لهذا؟

كل الاختبارات تجتاز مع هذا التغيير ... يسعدني تقديم العلاقات العامة للمراجعة / الاقتراحات؟

robhuzzey قد تحتاج إلى إضافة .less NPM devDependency في package.json ، ثم إضافة اختبار (في /tests/less ) لتحميل الملف من وحدة نمطية (ربما import-module.less file؟) بعد إضافة الاختبار ، سأتحقق من تعطله بدون الإصلاح للتأكد من أن الاختبار يعمل.

شكرًا @ Matthew-dean لقد تحققت من تعطل الاختبارات الحالية قبل إجراء الإصلاح ... حيث أجد صعوبة في أن جميع الاختبارات تم تسميتها .less .

أعتقد أن التحدي التالي هو جعله يتضمن ملفًا من node_modules .

robhuzzey هل لديك وقت أيضًا لإلقاء نظرة على https://github.com/less/less.js/issues/3116 ؟ لا بأس إذا لم تفعل.

@ ماثيو دين متأكد ... سعيد للمساعدة.

لقد أجريت اختبارًا لفرعي هنا: https://github.com/robhuzzey/less.js/tree/issue3115_extInNodePath ولكن يبدو أن شيئًا ما لا يعمل كما توقعت (أعتقد أنني لا أفهم تمامًا كيفية تضمين اختبار لـ هذا العمل).

إذا كان بإمكانك توجيهي إلى الخطأ الذي أفعله ، فسأكون ممتنًا :)

آسف @ ماثيو دين أنا أعمل في الخارج في الوقت الحالي ، لذا في منطقة زمنية مختلفة الآن ... سعيد بالنظر إلى المشكلات التي تواجهك إذا كان بإمكانك إخباري بكيفية كتابة الاختبارات لهذا lib؟ لقد حاولت عدة مرات بشكل دوري ولكن أشعر أنه من المحتمل أن تخبرني بسهولة :)

robhuzzey لست معتادًا على بناء الجملة file: في NPM ، ولكن ، بخلاف ذلك ، يبدو لي أنه يجب أن يعمل بشكل صحيح. الشيء الآخر الوحيد الذي عليك القيام به هو وضع import-module.css في test/css ، والذي يتم استخدامه بعد ذلك كملف مقارنة مع الإخراج المتوقع حتى يتمكن الاختبار من التحقق من أنه يعمل. عند تشغيل grunt quicktest ، قد تحتاج إلى تعديل أشياء ثانوية في CSS الناتج مثل الأسطر الجديدة أو المسافات البادئة لمطابقة إخراج أقل. يمكنك أيضًا إنشاء ملف فارغ للاختبار الأول الخاص بك ثم نسخ / لصق الإخراج المتوقع في سجل وحدة التحكم. طالما أنه يخرج القواعد من الوحدات مع حذف .less ، فهذا هو الشيء المهم. أود في الواقع مزج اختبارك بحيث يتم استيراد بعض (أو واحد) .less والبعض الآخر بدونه ، للحصول على اختبار أكثر قوة.

@ ماثيو دين شكرا لك ... كان الأمر بسيطًا جدًا في النهاية .. فقط كنت بحاجة إلى CSS للمقارنة!

لم أكن أعرف عن بناء جملة file:// في NPM سابقًا أيضًا ... لكنني أدرك الآن أن هذه حالة استخدام جيدة بدلاً من إنشاء حزمة NPM فعلية للاختبار فقط :)

لقد قمت بعمل العلاقات العامة الآن: https://github.com/less/less.js/pull/3120 لست متأكدًا من أفضل وصف ... إذا كان لديك أمثلة يمكنني اتباعها وما إلى ذلك أو نموذج سأكون سعيدًا اتبعه.

شكرا.

تم حل هذه المشكلة عن طريق: https://github.com/less/less.js/pull/3120

robhuzzey هل هناك أي

@ stefan-schweiger سأحاول الإفراج عن هذا الليلة أو ليلة الغد.

إذا كان أي شخص مهتمًا بالمشاركة في الإصدار الأقل من الريبو ، اتصل بي بكل الوسائل هنا أو على Twittermatthewdeaners.

@ stefan-schweiger آسف ، فقط رأيت هذا. ليس لدي القدرة على إطلاق سراح مثل ماثيو دين (هذه أول مساهمة لي في Less لأكون صادقًا).

@ ماثيو دين كما يمكنك أن تقول على الأرجح ، أنا مشغول جدًا في الوقت الحالي ولكن لدي بعض "وقت التوقف" المقرر طرحه قريبًا لذا سأعود إليك إذا كان هذا جيدًا؟ (لا يمكنني إضافة المزيد إلى ما أقوم به حاليًا).

شكرًا @ Matthew-dean على إصلاح https://github.com/less/less.js/issues/3123 ، وهذا هو السبب في أنني تلقيت هذا الخطأ في تصميم الإصدار الخاص بي. لذلك لا تقلق robhuzzey ، فقد

استمرت هذه المشكلة في الإصدار 3.0.1.
قمت يدويًا بإرجاع إصدار 2.7.3 لحل المشكلة.

allentcm هذا لا معنى له. أقل 2.7.3 لا تستورد من مجلد node_modules على الإطلاق.

@ Matthew -dean @

@ ماثيو دين @ allentcmbabsonmatt خفضت التصنيف إلى 2.7.3 عملت بالنسبة لي أيضًا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

lukeapage picture lukeapage  ·  102تعليقات

vicb picture vicb  ·  49تعليقات

Soviut picture Soviut  ·  64تعليقات

jonschlinkert picture jonschlinkert  ·  112تعليقات

pguerrant picture pguerrant  ·  35تعليقات