Less.js: باستخدام رميات bin / lessc "يجب أن يكون المسار سلسلة. تم الاستلام غير محدد"

تم إنشاؤها على ١٠ مايو ٢٠١٦  ·  12تعليقات  ·  مصدر: less/less.js

كما ورد بالفعل في # 2881 وبعد دمج # 2891 ، تشغيل lessc --source-map-map-inline styles/main.less في رميات العقدة v6

TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.basename (path.js:1355:5)
    at /Users/jhnns/dev/jhnns/less.js/bin/lessc:311:61
    at Object.<anonymous> (/Users/jhnns/dev/jhnns/less.js/bin/lessc:508:3)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:456:32)
    at tryModuleLoad (module.js:415:12)
    at Function.Module._load (module.js:407:3)

هذا بسبب تمرير مسار غير محدد كـ basename .

bug low priority up-for-grabs

التعليق الأكثر فائدة

أتساءل عن حالة هذا؟ لقد تلقيت هذا الخطأ في العقدة 6/7.

ال 12 كومينتر

أي تحديثات بخصوص هذا؟

نعم ، أي تحديثات؟
أود الانتقال إلى العقدة @ 6 الآن وهي LTS ولكن لا يمكنني ذلك حتى يتم إصلاح ذلك

أتساءل عن حالة هذا؟ لقد تلقيت هذا الخطأ في العقدة 6/7.

أنا أتلقى هذا الخطأ أيضًا ..
كيف يمكنني تجميع بياناتي الأقل باستخدام ملف خريطة منفصل؟
أنا أستخدم الأمر:
lessc --no-color test.less --source-map=test.css.map -source-map-url=test.css.map

كما ذكر jhnns ، اتضح أنه يبحث عن

lessc --source-map=test.less.map test.less>test.css

ومع ذلك ، فإن إضافة ملف الإخراج كمعامل بدلاً من الأنابيب يعمل:

lessc --source-map=test.less.map test.less ./test.css

أتمنى أن يساعدك هذا يا رفاق 👍

لذلك ، بعبارة أخرى ، سيكون الإصلاح المناسب هو "طرح خطأ عند تحديد ملف sourcemap ولكن إخراج css ليس كذلك" ، أليس كذلك؟
من الواضح أنه نظرًا لأن خريطة المصدر يجب أن تشير إلى ملف css معين ، فلا توجد طرق (غير مبتذلة) لإنشاء خريطة مصدر مناسبة بدون تحديد إخراج css ، أي أن سطور الأوامر هذه ببساطة لا معنى لها:

lessc --source-map=test.less.map test.less
lessc --source-map=test.less.map test.less > test.css

لا ، يجب أن تعمل كما كانت في السابق - هذين الأمرين:

lessc --source-map=test.less.map test.less
lessc --source-map=test.less.map test.less > test.css

هل يجب إخراج هذا باعتباره السطر الأخير:

/*# sourceMappingURL=test.less.map */

اسم ملف مخرجات CSS غير ذي صلة على الإطلاق ، فقط الرابط المؤدي إلى الخريطة مهم.

اسم ملف مخرجات CSS غير ذي صلة على الإطلاق

ليس تمامًا ، تحتوي خريطة المصدر على الحقل file يشير إلى CSS الناتج (على الرغم من أنني أستطيع أن أرى أنه اختياري في أحدث المواصفات. المراجعات).

في كلتا الحالتين ، حسنًا ، بقدر ما أستطيع أن أقول أن المشكلة تكمن في هذا الجزء . وبالتالي فهي مجرد مسألة استبدال dir الإخراج css بأي مسار (sourcemap dir؟) إذا لم يتم تعريف output .
حسنًا ، العلاقات العامة مرحب بها (أنا شخصياً لا أستخدم خرائط المصادر وليس لدي أي فكرة عن الخيارات التي يمكن كسرها من خلال هذه التغييرات لمزيد من الاختبار).

لا يوفر دعم خرائط المصدر الخارجية مع الأنابيب أي قيمة وظيفية. إنه يوفر فقط للمستخدمين * nix اصطلاح الأنابيب إلى ملف بدلاً من تحديد معلمة إخراج فعلية.

ليس من المنطقي إنشاء خريطة مصدر خارجية ثم توجيه إخراج css إلى عملية أخرى.

تتضمن الأنابيب مزيدًا من التغييرات التي تحدث في الخطوة (الخطوات) التالية من السلسلة ، أو CSS (وخريطة المصدر) التي يتم استهلاكها ليتم تقديمها بواسطة تطبيق خادم الويب في الخطوة الأخيرة.

ستؤدي أي تغييرات على إخراج CSS بواسطة Less إلى إبطال خريطة المصدر التي أنشأها Less. لجعل خريطة المصدر صالحة مرة أخرى ، ستحتاج إلى تتبع هذه التغييرات في خريطة مصدر أخرى ثم دمج ذلك مع المخرجات الأصلية بواسطة Less لإنشاء خريطة مصدر مركبة تستعيد التعيين إلى المحتويات الصحيحة في الملفات الأصلية. .

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

وبالطبع؛ إذا كانت الخطوة الأخيرة من السلسلة تهدف إلى تقديم خريطة المصدر و css المترجمة: نفس المشكلة. لا إشارة إلى الخريطة. (كيف ستقدم كلا الملفين كاستجابة لطلب واحد على أي حال؟ تضمين خريطة المصدر؟ ثم لماذا لا تجمع الأقل مع خريطة مضمنة لتبدأ؟)

أفضل الوضوح وتوجيه المستخدم (على سبيل المثال "الوقوع في حفرة النجاح") لعدم السماح بمجموعة من العمليات التي يمكن أن تؤدي فقط إلى مشاكل مع القطع الأثرية التي تم إنشاؤها.

لا يوفر دعم خرائط المصدر الخارجية مع الأنابيب أي قيمة وظيفية. إنه يوفر فقط للمستخدمين * nix اصطلاح الأنابيب إلى ملف بدلاً من تحديد معلمة إخراج فعلية.

متفق. إذا كان سيتم تحديد اسم ملف الإخراج ، فيجب تحديده كوسيطة للمترجم lessc .

ومع ذلك ، هل تم توثيق الأنابيب في الماضي؟ إذا لم يكن الأمر كذلك ، فهذه نقطة خلافية ويمكننا فقط توثيق السلوك الحالي. إذا كان الأمر كذلك ، فنحن بحاجة إلى توثيق السلوك السابق والحالي غير المدعوم.

ومع ذلك ، هل تم توثيق الأنابيب في الماضي؟

تعمل الأنابيب عن طريق إعادة توجيه التدفقات مثل stdout أو stderr. عندما لا يتم إعطاء lessc اسم ملف الإخراج ، فإنه يخرج إلى stdout. وبهذا المعنى ، كانت الأنابيب دائمًا مدعومة رسميًا ويجب الاستمرار في دعمها. من المحتمل أن تكسر الكثير من حالات الاستخدام العاقلة بخلاف ذلك للأشخاص الذين يعتمدون على الأنابيب للتواصل في الوقت المناسب فقط مع عدد أقل من الملفات المجمعة إلى أي تطبيق خادم يحتاج إلى خدمتها كملف css.

إذا كنت تريد استخدام الأنابيب مع خريطة المصدر ، فلا يزال ذلك ممكنًا بطريقة عاقلة:
سيتعين عليك جعلها خريطة مصدر مضمنة ثم الاعتماد على خطوات معالجة إضافية في الأنبوب لفك تشفير الخريطة المضمنة ؛ دمج التعديلات فيه ؛ وأعد تطبيقه كخريطة مصدر مضمنة كلما قامت هذه الخطوات بتعديل CSS الذي تم تجميعه بواسطة مترجم lessc.

بعد ذلك ، إذا كنت تريد خريطة مصدر خارجية من أجل الأداء - أي تجنب وحدات البايت الإضافية للخريطة المضمنة التي يتم تسليمها لجميع الزوار. - يجب أن تؤدي الخطوة الأخيرة في خط الأنابيب إلى فصل خريطة المصدر المضمنة وإخراج ملفين: ملف css وملف خريطة.

ليس من المنطقي إنشاء خريطة مصدر خارجية ثم توجيه إخراج css إلى عملية أخرى.

تتضمن الأنابيب مزيدًا من التغييرات التي تحدث في الخطوة (الخطوات) التالية من السلسلة ، أو CSS (وخريطة المصدر) التي يتم استهلاكها ليتم تقديمها بواسطة تطبيق خادم الويب في الخطوة الأخيرة.

أنا لا أتفق مع المشاعر المقتبسة ، وأعتقد أنه من الخطأ افتراض ما يوجد على الجانب الآخر من أي أنبوب معين. ماذا لو تم تحميل الأنبوب إلى مكان ما؟ ماذا لو كان الأنبوب يخدم CSS الناتج ، لكن العميل لا يحتاج دائمًا إلى خريطة المصدر؟

نظرًا لأنه تم تنفيذ علامة --source-map-url ، أعتقد أنه يجب دعم حالة الاستخدام هذه.

على أي حال ، يجب ألا يرى المستخدمون أخطاء غامضة وغير معروفة ، خاصة عند تمرير العلامات من نص المساعدة.

فقط سنتان بعد أن تم حظره بسبب هذه المشكلة.

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

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

pknepper picture pknepper  ·  3تعليقات

xblakestone picture xblakestone  ·  3تعليقات

briandipalma picture briandipalma  ·  6تعليقات

heavyk picture heavyk  ·  3تعليقات

awebdev picture awebdev  ·  4تعليقات