Moment: TS2307: لا يمكن العثور على "لحظة" الوحدة النمطية.

تم إنشاؤها على ١ مايو ٢٠٢٠  ·  47تعليقات  ·  مصدر: moment/moment

أواجه مشكلة في استيراد اللحظة في مشروع Angular 8 الخاص بي.

النسخة الزاويّة = 8.3.26
اكتب إصدار البرنامج النصي = 3.6.2
إصدار اللحظة = 2.25.0

أتلقى الخطأ TS2307: لا يمكن العثور على "لحظة" الوحدة النمطية. ولقد استخدمت
لحظة استيراد من "لحظة" ؛ .

لقد أضفت "moduleResolution": "node" و "allowSyntheticDefaultImports": true ، في tsConfig

يمكن لأي شخص أن تساعد على ذلك

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

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

ال 47 كومينتر

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

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

لقد حاولت. ولكن جاء الخطأ نفسه.

كيف يبدو خط اللحظة في package.json؟

قد يكون العمل مع 2.24.0 خطأ في النشر في 2.25.0
يرجى نشر الإصدار الجديد مع الإصلاح.

إذا كنت تستخدم الغزل ، أضف كتلة دقة إلى package.json لتجاوز إصدارات التبعية الفرعية ، فستعمل بالنسبة لي

  "resolutions": {
    "moment": "2.24.0"
  }

يبدو أن دقة الوحدة النمطية Typescript لا يمكنها العثور على لحظة. استخدام مسار نسبي يعمل. / node_modules/moment/moment. codebrent شكرًا ، إنه يعمل الآن مع الإصدار 2.24.0.

في 2.25 تمت إضافة هذا إلى package.json. ولكن إذا فهمت لا يوجد موقع مطابق لملف typedef. ربما هذا كسر الكتابة؟

"typesVersions": {
    ">=3.1": {
      "*": [
        "ts3.1-typings/*"
      ]
    }
  },

قد يكون العمل مع 2.24.0 خطأ في النشر في 2.25.0
يرجى نشر الإصدار الجديد مع الإصلاح.

لا هذا لا يعمل معي

كيف يبدو خط اللحظة في package.json؟

"اللحظة": "^ 2.25.0"،

Capture
كل لحظة تستورد الخطأ العائد

كيف يبدو خط اللحظة في package.json؟

111

حاول التغيير إلى "لحظة": "2.24.0" ، تأكد من عدم وجود ^ فيها. حذف node_models وإعادة تثبيت npm. أيضًا إذا كان لديك package-lock.json فقد تحتاج إلى حذفه. وإلا فسيستمر npm في تثبيت 2.25

أرى نفس المشكلة ، ووفقًا لدرجة توافق Dependabot في الوقت الحالي ، لست الوحيد.

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

حاول التغيير إلى "لحظة": "2.24.0" ، تأكد من عدم وجود ^ فيها. حذف node_models وإعادة تثبيت npm. أيضًا إذا كان لديك package-lock.json فقد تحتاج إلى حذفه. وإلا فسيستمر npm في تثبيت 2.25

الطريقة الأكثر أمانًا للقيام بذلك هي ببساطة npm install [email protected] . لا تحتاج إلى حذف أي شيء أو تغيير أي شيء يدويًا.

أستطيع أن أؤكد أن الرجوع إلى الإصدار 2.24 يعمل على إصلاح المشكلة.

حاول التغيير إلى "لحظة": "2.24.0" ، تأكد من عدم وجود ^ فيها. حذف node_models وإعادة تثبيت npm. أيضًا إذا كان لديك package-lock.json فقد تحتاج إلى حذفه. وإلا فسيستمر npm في تثبيت 2.25

الطريقة الأكثر أمانًا للقيام بذلك هي ببساطة npm install [email protected] . لا تحتاج إلى حذف أي شيء أو تغيير أي شيء يدويًا.

أستطيع أن أؤكد أن الرجوع إلى الإصدار 2.24 يعمل على إصلاح المشكلة.

محليًا ، تم تشغيله بعد هبوط إلى 2.24.0. ولكن عندما أقوم بنشر هذا في Azure لإعطاء نفس الخطأ.
azure error

سؤالي هو ما إذا كانت package.json هي نفسها تقوم بتشغيل كل من local و azure لماذا تسبب الخطأ في لحظة الاستيراد.
لقد أرفقت خطأ تسجيل الدخول في الخادم كذلك

أستطيع أن أؤكد 2.25.0 أعطيت هذه المشكلة ولكن ليس 2.24.0.

أؤكد أيضًا أن 2.25.0 أعطي هذه المشكلة. تعمل Moment 2.24.0 بشكل جيد.

لقد واجهت هذه المشكلة أثناء بناء صورة عامل ميناء.

لا يعمل مع 2.24.0 بالنسبة لي

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

أستخدم المنطقة الزمنية اللحظية
انها لا تعمل مع تحديد الإصدار 2.24.0 في package.json

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

انها لا تعمل مع 2.24.0

ربما لم تقم بالرجوع إلى 2.24.0. قم بإزالة ملف قفل الحزمة ومجلد node_modules ، ثم قم بتشغيل هذا الأمر:

تثبيت npm - حفظ - حفظ بالضبط
تثبيت npm

أواجه أيضًا نفس المشكلة في مشروع مطبوع ، ويفشل الإصدار فجأة لأننا لم نثبِّت التبعية في package.json.

error TS2307: Cannot find module 'moment'.
error Command failed with exit code 2.

يؤدي تثبيت الإصدار إلى "2.24.0" إصلاح المشكلة.

يمكن المحاولة باستخدام حقل الدقة في package.json

أضف

"القرارات": {
"لحظة": "2.24.0"
}

أؤكد أيضًا أنه مع الإصدار 2.25.0 لدي نفس المشكلة مع النسخة المطبوعة 3.8.3 والتي تعمل مع ts-node 8.9.1. خفض مستوى 2.24.0 إلى حل المشكلة.

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

انها لا تعمل مع 2.24.0

ربما لم تقم بالرجوع إلى 2.24.0. قم بإزالة ملف قفل الحزمة ومجلد node_modules ، ثم قم بتشغيل هذا الأمر:

تثبيت npm - حفظ - حفظ بالضبط
تثبيت npm

شكرا. لقد تم حل مشكلتي. يعمل مع 2.24.0
الاستخدام الصحيح: "moment": "2.24.0"
استخدام خاطئ: "moment": "^2.24.0"

"لحظة": "2.24.0" تعمل لدي أيضًا ..

نفس الشيء ، قفل 2.24.0 ثابت.

هذا على تطبيق 7.2 الزاوي المصمم باستخدام webpack ^ 4.2.0

نعم ، 2.24.0 تعمل بشكل جيد. هل يعرف أي شخص ما هو التغيير الذي قاموا به؟

نفس المشكلة تم إصلاحها من خلال تعيين الإصدار الثابت على "2.24" بدلاً من "^ 2.24"

هل لدينا الوقت المقدر للوصول لهذا الإصلاح؟

إنه يوم الجمعة وأتساءل عما إذا كان ينبغي علي تخفيض الإصدار إلى 2.24.0 قبل عطلة نهاية الأسبوع.

حاول التغيير إلى "لحظة": "2.24.0" ، تأكد من عدم وجود ^ فيها. حذف node_models وإعادة تثبيت npm. أيضًا إذا كان لديك package-lock.json فقد تحتاج إلى حذفه. وإلا فسيستمر npm في تثبيت 2.25

شكر. تم إصلاح المشكلة عن طريق تخفيض الإصدار إلى 2.24.0

لم تعد تعيش في الوقت الحالي على الرغم من :)

حاول التغيير إلى "لحظة": "2.24.0" ، تأكد من عدم وجود ^ فيها. حذف node_models وإعادة تثبيت npm. أيضًا إذا كان لديك package-lock.json فقد تحتاج إلى حذفه. وإلا فسيستمر npm في تثبيت 2.25

شكرًا ، تم إصلاح المشكلة عن طريق تنزيل الإصدار من 2.25.0 إلى 2.24.0. كما فعلت "^ 2.24.0" إلى "2.24.0"

إذا لم تنجح عملية الرجوع إلى إصدار أقدم von 2.25.0 إلى 2.24.0 وظهرت لك نفس الخطأ مرة أخرى ، فحاول إلغاء تثبيت الوحدة بالكامل وإعادة تثبيتها مرة أخرى.

باستخدام npm:

  1. npm uninstall moment
  2. npm install [email protected]

آمل أن يساعد.

في صحتك
Unkn0wn0x

أي فكرة متى سيصدر الإصلاح؟ أرى أن هذه مشكلة معطلة وليس لدي إمكانية الوصول لإجراء تغييرات في Master لتعيين الإصدار الحالي إلى 2.24 الآن وفشل إنشاءات الإنتاج في اليسار واليمين.
يرجى مشاركة الإصدار ETA شكرًا

واجهت هذه المشكلة أيضًا ، وقمت بإصلاحها
عن طريق إزالة تلك الخطوط
"typesVersions": { ">=3.1": { "*": [ "ts3.1-typings/*" ] } },
الأسطر 150-156
في
. \ node_modules \ moment \ package.json
وبعد أن فعلت هذا ، يعمل بشكل جيد مع الإصدار 2.25

واجهت هذه المشكلة أيضًا ، وقمت بإصلاحها
عن طريق إزالة تلك الخطوط
"typesVersions": { ">=3.1": { "*": [ "ts3.1-typings/*" ] } },
الأسطر 150-156
في
. \ node_modules \ moment \ package.json
وبعد أن فعلت هذا ، يعمل بشكل جيد مع الإصدار 2.25

هذا سيعمل محليًا ، لكنني أشك في خطوط أنابيب CI

شكرا للجميع: D 2.24.0 عملت معي أيضا ..

تم الرجوع إلى 2.24.0 ، وهو يعمل بشكل جيد.

تم إصدار 2.25.1

تم اختباره 2.25.1 ، انتهى الإصدار. شكر

نعم ، لقد اختبرت هذا أيضًا ولم أواجه أي مشاكل.

في الواقع ، تمت ترقيته بعد دقائق من نشره وكل شيء على ما يرام: شكرًا على الإصلاح السريع!

أخيرا يعمل بالنسبة لي. الرجوع إلى 2.24.0 العمل. ولكن تأكد من وضع " لحظة": "2.24.0"
بدلاً من "لحظة": "^ 2.24.0"
azure error

قام الإصدار 2.25.1 بحل مشكلة لا يمكن العثور على وحدة "لحظة" ، لكنني أقوم باختبار في تطبيق Angular 8 ويظهر الخطأ التالي:

WARNING in ./node_modules/moment/src/lib/locale/locales.js
Module not found: Error: Can't resolve './locale' in '/home/project/node_modules/moment/src/lib/ locale'

هل عانى أي شخص آخر من هذا الفشل؟

أتلقى أيضًا تحذيرات في 2.25.1 حول بعض الوظائف الأخرى التي أشير إليها:

"export 'utc' (imported as 'moment') was not found in 'moment'
"export 'max' (imported as 'moment') was not found in 'moment'
"export 'min' (imported as 'moment') was not found in 'moment'

بالنسبة لي كان

    "moment": "2.24.0",
    "moment-timezone": "^0.5.31",

أعتقد أنه يمكنك تحديث اللحظة إلى الإصدار 2.29.0

npm uninstall moment
npm install [email protected]

TS2307: لا يمكن العثور على "لحظة" الوحدة النمطية في Angular 8

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

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

M-Zuber picture M-Zuber  ·  3تعليقات

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

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

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

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