Less.js: لا يمكن استدعاء FileManager مُنشئ الفئة بدون "new".

تم إنشاؤها على ١٧ أغسطس ٢٠١٩  ·  64تعليقات  ·  مصدر: less/less.js

يبدو أن الإصدار v3.10.0 يكسر بنيتي وسجلات حزم الويب أدناه:

ERROR in ./src/pages/score/components/current/no-join/index.less
Module build failed (from ./node_modules/[email protected]@mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/[email protected]@less-loader/dist/cjs.js):


Class constructor FileManager cannot be invoked without 'new'
      in undefined (line undefined, column undefined)
    at runLoaders (/home/admin/build/node_modules/[email protected]@webpack/lib/NormalModule.js:313:20)
    at /home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:367:11
    at /home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:111:13)

كل شيء على ما يرام عند الرجوع إلى الإصدار v3.9.0 ، يرجى التحقق من هذه المشكلة ونأمل في إصلاحها في أقرب وقت ممكن.

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

لدي نفس المشكلة ، لقد قمت بتغيير "package.json '' الخاصة بك =>" less ":" ~ 3.9.0 "، إصدار محدود

ال 64 كومينتر

لدي نفس المشكلة ، لقد قمت بتغيير "package.json '' الخاصة بك =>" less ":" ~ 3.9.0 "، إصدار محدود

+1

+1

+1!
عاجل ~

+1

نفس المشكلة

إصدار واحد أقل من 3.9.0 أقل محمل 4.1.0

يمكنك إزالة ^ من الإصدار الأقل في package.json وإعادة تثبيت v3.9.0. يجب أن يحل المشكلة. يمكنك تجربتها. على الرغم من أن الإصدار مغلق ، بسبب ^ ، سيتم تنزيل أحدث إصدار من 3. يجب أن يكون أحدث إصدار مشكلة.

+1

+1

const shortname = new this.less.FileManager().extractUrlParts(filename).filename;

بسبب هذا الرمز المشابه؟

omg , لقد اقتصرت الإصدار على 3.9.0 يعمل.

نفس الشيء هنا. يلتقط npm هذا الإصدار "الصغير" تلقائيًا ، ويكسر كل بنياتي. :(

+1

v3.10.0 نفس الخطأ

+1

عجل

+1

فقط استخدم [email protected] كل شيء سيكون على ما يرام

lixiaohulee إلا إذا كنت لا تستخدم محمل أقل ولن يكون كل شيء على ما يرام

+1

+1

لدي نفس المشكلة (((

+1

لدي نفس المشكلة :/

هذه مشكلة في إصدار أقدم من less-loader ، وليس أقل ، والذي لم يرث مدير الملفات الأقل بشكل صحيح. less-loader 5.0 يفعل. انظر: https://github.com/less/less.js/issues/3414#issuecomment -522223041

حلها؟

حلها؟

يمكنك أخذ التبعيات الأقل في package.js وإعادة تثبيت أحدث إصدارات ثانوية.
image

+1

اووووووووبس !!! لماذا لا يتم حل المشكلة حيث أن العديد من المشاريع قد أغلقت إصدار less-loader بـ 4.1.0 .

نحن نستخدم antd الذي كسر: https://github.com/ant-design/ant-design/issues/18343

كيف يمكننا حل المشكلة؟

montanaflynn احتفظ ببيئة قديمة وأنشئ خريطة تبعيات مقفلة باستخدام npm-shrinkmap.json قد يكون اختيارًا جيدًا.

@ aleen42 شكرًا ، آمل أن يتم إصلاح هذا قريبًا ، لست على دراية بجميع الأشياء npm.

montanaflynn لقد التقيت عدة مرات عندما كسرنا أثناء البناء بسبب التبعيات غير المؤمنة ، بما في ذلك التبعيات الفرعية. هذه مشاكل محيرة لـ NPM لمعظم مطوري FE.

@ aleen42 قمنا بإصلاحه بإضافة

  "devDependencies": {
    "less-loader": "^5.0.0"
  }

لماذا تنشأ هذه المشكلة؟
إصدار Node.js ليس صحيحًا؟

إنها ليست مشكلة في إصدار العقدة.

montanaflynn يمكنك أيضًا حل المشكلة بتحديد إصدار فرعي مقابل less-loader مؤقتًا:

devDepedencies: {
    "less-loader": "4.1.0",
    "less": "3.9.0"
}

الترقية مع
yarn upgrade less@^3.10.1 less-loader@^5.0.0

استخدم "less": "~3.9.0"

+1

+1

بالمناسبة ، بالنسبة لأولئك الذين يشاهدون هذا الموضوع ، سأعيد فتحه وربما أرسل إصلاحًا لاحقًا اليوم لإصدارات أقدم less-loader ، فقط لجعل الأشياء أقل إزعاجًا.

إنها إحدى حالات الحافة حيث يؤدي استخدام بناء الجملة Class لاستبدال دالة النموذج الأولي إلى حدوث خطأ بدون new . من المفترض دائمًا أن يتم استدعاء مدير الملفات باستخدام new (هذه هي واجهة برمجة التطبيقات الموثقة) ، ويبدو أن الإصدارات الأقدم من less-loader لم تفعل ذلك.

_ مرة أخرى ، على الرغم من ذلك ، إذا كنت تبحث في الموضوع ، فإن مجرد التحديث إلى less-loader 5.0 يصلح عدم التوافق هذا ._

أعتقد أنه من الأفضل أن تقوم less-loader بتقليل تبعياتها إلى أقل من 3.9.0 .

@ aleen42 لماذا يكون ذلك ضروريًا ، في حين أن أحدث إصدار من less-loader يعمل بشكل جيد؟

افترض أن بعض المشاريع قد لا تحتاج إلى الاهتمام بمخاطر الترقية عالية المستوى من 4.x إلى 5.x .

+666

هل يمكن لشخص أن يحاول: https://github.com/less/less.js/pull/3421؟

الفرع موجود في: https://github.com/matthew-dean/less.js/tree/release/v3.10.2

التحدي في اختبار هذا هو أن اختبارات less-loader الخاصة فشلت في 3.9.0 ، لذلك ليس من الواضح ما هو متوقع. ولكن ، مع تحويل فئات Less التي تم تصديرها إلى وظائف ، يتم تشغيل نفس الأخطاء على الأقل في less-loader ، لذلك ليس من الواضح ما إذا كان هذا ناتجًا متوقعًا أم لا. كما أنه ليس من الواضح _ كيف_ أو لماذا يحدث هذا الخطأ في Less loader v4 ، ولا يحدث في الإصدار 5 ، إلا أنه قد يكون مشكلة Webpack على الإصدار 4؟

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

إصدار واحد أقل من 3.9.0 أقل محمل 4.1.0

+1

+1

حدد إصدارًا أقل يدويًا :
npm أنا [email protected] -D
نعم!!!

الإصلاح عن طريق الرجوع إلى الإصدار 3.9.0

قبل ذلك ، قمت بحذف node_modules واكتب npm i ، حدث هذا الخطأ. لذا فإن الإصدار الأخير 3.10.1 لا يزال به هذا الخطأ. اخترت الرجوع إلى 3.9.0

كيف يمكنني إصلاح هذا الخطأ إذا كنت أستخدم @ zeit / next-less؟ نقدر أي مساعدة.

تضمين التغريدة

npm i @zeit/next-less
npm i [email protected]

https://forum.vuejs.org/t/vue-cli/72008/7
"أقل": "^ 3.10.1"،
"محمل أقل": "^ 5.0.0"،
يجري

مدمج: https://github.com/less/less.js/pull/3421

لم يبد أي شخص لديه مشكلات أقل في تحميل الإصدار 4 مستعدًا لاختبار [3.10.2] 🤷‍♂ ، ولكن في الاختبار الذي أجريته ، تحطمت اختبارات Less-loader v4 بشكل مختلف مع 3.10.1 (مشكلة مُنشئ الفئة) ، وكسرت نفس الشيء مع PR . لذلك ..... لست متأكدا إذا كان يصلحه ، ولكن لا ينبغي أن يكون أسوأ؟

لقد قمت بدمج هذا الإصلاح المحتمل في الإصدار الرئيسي (ولكن لم يتم إصداره بعد إلى NPM). ما زلت أحب أن يؤكد شخص ما قبل الإفراج بدلاً من +1.

يمكنني أن أؤكد أنني جربت للتو الفرع الرئيسي الحالي الأقل محليًا باستخدام محمل أقل ^ 4.1.0 ، ومشروعي قادر على البناء مرة أخرى. 👍

شكرا لعملك في هذا!

jenniferneale شكرا للتأكيد! سأقوم بالنشر إلى NPM في وقت لاحق اليوم بعد ذلك ، لا يمكنني القيام بذلك من العمل.

+1

هل تم إصلاح هذه المشكلة مع 3.10.3؟

@ H4ngman يجب أن يكون. أعد الفتح إذا لم يكن كذلك.

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