Angular-google-maps: غير متوافق مع Ivy (تجريبي)

تم إنشاؤها على ١ يونيو ٢٠١٩  ·  54تعليقات  ·  مصدر: SebastianM/angular-google-maps

وصف المشكلة
عند التحويل البرمجي باستخدام Ivy ، فشل التجميع مع الخطأ التالي:

ERROR in src/app/app.module.ts(8,12): error TS-991010: Value at position 1 in the NgModule.importss of AppModule is not a reference: [object Object]

خطوات إعادة إنتاج وعرض بسيط للمشكلة
لم أتمكن من إنشاء ستدبلتز أو بلاونكر لهذا لأنه ينوي إظهار فشل المترجم ولا أعرف كيفية إثبات ذلك.
يمكنك التحقق من https://github.com/paullessing/agm-ivy-demo ومحاولة الإنشاء بعد تشغيل yarn install .

  1. قم بتثبيت مشروع جديد من Angular 8 باستخدام ng new
  2. أضف @agm/core وقم بإعداد الاستيراد الافتراضي
    imports: [ BrowserModule, AgmCoreModule.forRoot({ apiKey: environment.mapsApiKey, }) ]
  3. تمكين Ivy في tsconfig.app.json :
    { ... "angularCompilerOptions": { "enableIvy": true } }
  4. تمكين AOT في angular.json للتغلب على " المسارات البطيئة غير موجودة ":
    { "projects": { "my-project": { "architect": { "build": { "options": { ... "aot": true, } } } } } }
  5. تشغيل ng serve

السلوك الحالي
فشل التجميع مع الخطأ:

ERROR in src/app/app.module.ts(8,12): error TS-991010: Value at position 1 in the NgModule.importss of AppModule is not a reference: [object Object]

(الموضع 1 في المصفوفة imports هو AgmCoreModule.forRoot() )

السلوك المتوقع / المطلوب
لا يوجد فشل المترجم

angular2 & angular-google-maps الإصدار

"@agm/core": "1.0.0-beta.5",
Angular CLI: 8.0.1
Node: 10.16.0
OS: win32 x64
Angular: 8.0.0
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.800.1
@angular-devkit/build-angular     0.800.1
@angular-devkit/build-optimizer   0.800.1
@angular-devkit/build-webpack     0.800.1
@angular-devkit/core              8.0.1
@angular-devkit/schematics        8.0.1
@angular/cli                      8.0.1
@ngtools/webpack                  8.0.1
@schematics/angular               8.0.1
@schematics/update                0.800.1
rxjs                              6.4.0
typescript                        3.4.5
webpack                           4.30.0

معلومات أخرى
تجميع يعمل عندما يتم تعطيل Ivy.

قد تكون مرتبطة بـ https://github.com/angular/angular/issues/28603 التي تنص على أنه إذا كان package.json لا يحتوي على خاصية types أو typings ، سيتم استبعاد وحدة من التجميع.

important bug build system

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

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

ال 54 كومينتر

غير قابل لاعادة الانتاج. هل يمكن أن يكون importss يحتوي على اثنين؟

غير قابل لاعادة الانتاج. هل يمكن أن يكون ل importss اثنين؟

أعتقد أن هذا بسبب مصفوفة باسم imports لذا رسالة الخطأ تحاول جمعها.

لقد حاولت مرة أخرى مع مشروع جديد تمامًا ، وما زال يفشل (مع الإصدار التجريبي 6). لقد قمت بتحديث التفاصيل أعلاه.

حسنا حاول

ng new my-proj --enable-ivy
cd my-proj
npm install @agm/core

أضف AgmCoreModule.forRoot... إلى الواردات

npm start

هذا هو بالضبط ما فعلته في المشروع التجريبي الذي ربطته في الوصف أعلاه.

نفس المشكلة هنا.

paullessing @ ramses10 هل ترغب في الانضمام إلى

@ doom777 بخير بالنسبة لي

مستنسخة مع البناء: prod
@ doom777 هل حاولت مع علم همز؟

أواجه نفس المشكلة بالضبط. تطبيقي مشابه للمثال الذي شاركه Paul. أحصل على Value at position 1 in the NgModule.importss of AppModule is not a reference: [object Object] على كل من ng b --prod و ng b .

الزاوي: 8.0.0
@ agm / core: 1.0.0 بيتا .6

مرحبًا ، لدي نفس المشكلة عند تمكين Ivy:
خطأ في src / app / app.module.ts (37،12): خطأ TS-991010: القيمة في الموضع 16 في NgModule.importss من AppModule ليست مرجعًا: [كائن الكائن]

يعمل عندما يتم تعطيل Ivy

من خلال النظر في المشكلة ، وجدت مشكلتين مرتبطتين في حزمة الزاوية والزاوية.

يبدو أن الخطأ يأتي من مكتبة خارج node_module وتم إتاحتها باستخدام path-mapping .

تحقق من التعليق والمشكلة التالية: https://github.com/angular/angular-cli/issues/14594#issuecomment -497288501

وأيضًا هذه المشكلة: https://github.com/angular/angular/issues/30945

لسوء الحظ ، لم أتمكن من عمل المكتبة باستخدام التقنية الموضحة في التعليق (الرابط الأول) باستخدام: ./node_modules/.bin/ivy-ngcc -s ./dist .

لا أفهم حقًا ما يحدث ، لكن ربما يمكن أن يساعدك ذلك.

حسنًا ، ربما بعد تنفيذ # 1648 سيعمل. لست على علم بأي مكتبات مرتبطة بالمسار في مكتبة تحريرنا ، لكننا نستخدم حزمًا غير عادية

أي تحديثات بشأن هذه المسألة؟

نفس المشكلة هنا عند استخدام أحدث إصدار بيتا و Ivy

بعد الاختبار ، # 1634 يقوم بإصلاحه ، لذا فإن المشكلة تتعلق بنظام البناء الذي عفا عليه الزمن. نأمل أن يتمكنSebastianM من مراجعة العلاقات العامة ودمجها

أي تحديث على هذا؟

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

terencehonles هل يمكنك تحديث https://github.com/SebastianM/angular-google-maps/pull/1634 من فضلك؟

لم يتم نشره في npm؟

ليس بعد. نحن لا ننشر كل الالتزام.

هل يمكنك نشر هذا ، لأنه يمكن اعتباره رئيسيًا لأنه يوفر دعمًا لـ Angular 9 / IVY

ليس بعد. نحن لا ننشر كل الالتزام.

@ doom777 قد يكون النشر فكرة جيدة لأنه تحديث رئيسي ويقدم إصلاحًا رئيسيًا ...

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

@ doom777 أي تحديثات فيما يتعلق بموعد نشر هذا الإصدار أو الإصدار التالي؟ هل توجد صعوبات في النشر إلى npm؟ تحتوي الحزمة على 65 ألف + نقوم بتنزيلها وهذا هو عدد الأشخاص الذين يمكنهم الاستفادة من الإصدار الجديد.

من قراءة هنا https://docs.npmjs.com/creating-and-publishing-scoped-public-packages أفهم أن النشر يجب أن يكون عملية سريعة وسهلة ، أم أنني أفتقد شيئًا ما؟ :)

شكرا

@ doom777 أي تحديثات؟

مرحبا جميعا. أعلم أن بعضكم متشوق لإصدار هذا الإصلاح ، لكن (1) لست مسؤولاً عن إصدار إصدارات agm جديدة ، (2) أصدرنا إصدارًا مؤخرًا إلى حد ما ، و (3) لا يزال Ivy قيد المعاينة ، لذا في حين أنه مهم بالنسبة لنا لإصدار الدعم ، فهو ليس أولوية 0 حرجة .
لقد قمت بإرسال رسالة إلى SebastianM حول إصدار إصدار جديد ،

شكرا لك على التحديث والمعلومات.

نعم ، Ivy قيد المعاينة فقط ولكن لا يزال بإمكانه مساعدة العديد من المطورين بالفعل اليوم.
يجب ألا يكون الإصدار الأخير مشكلة نظرًا لأن npm يسمح بالإصدار كل 24 ساعة ؛)

نأمل أن يتمكن SebastianM من التفكير في إصدار جديد قريبًا :)

شكرا

@ doom777 ليست أولوية 0 حاسمة ، لكنها مهمة جدًا.

Angular على وشك إصدار v9.0.0 والذي سيمكّن Ivy افتراضيًا ، وستكون هذه الحزمة عديمة الفائدة مع هذا الإصدار. إذا قام PR بإصلاحه ، فلا يمكنني معرفة سبب عدم إصدار إصدار جديد.

أيضًا ، لا أرى سببًا لأن هذه الحزمة لا تزال في مرحلة تجريبية. إنها تعمل على ما يرام هنا ، لا توجد أخطاء ولا عدم استقرار.

كان PR الذي أرسلته (# 1634) هو معالجة تجميع AOT الذي كان موجودًا منذ فترة (Angular 4+؟) ، ويجب أن يكون هذا سببًا جيدًا لإصدار إصدار تجريبي جديد.

فيما يتعلق برقم 1647: تتطلب Ivy طلب AOT ، وهذا هو سبب كسرها على Ivy ، ولكن قد تكون هناك أشياء أخرى حول المكتبة تحتاج إلى التغيير لجعلها متوافقة تمامًا مع Ivy.

في العمل ، بدأت في تجربة بناء تطبيقنا مع Ivy ، ولكن هناك حزم أخرى نعتمد عليها ويبدو أن بها مشكلات ، والترقية إلى Ivy ليست مطلبًا أساسيًا لتطبيقنا. نظرًا لأن لدينا المزيد من الوقت للاختبار ومن المحتمل أن نضيف المزيد من ميزات الخرائط ، يمكنني النظر في المساهمة بأي تغييرات أراها ضرورية ، لكن لا يمكنني تقديم أي التزامات بشأن مقدار الوقت الذي أملكه للمساعدة في هذا المشروع.

@ iget-master ، لن أذهب إلى حد القول بأنه لا توجد أخطاء ولا عدم استقرار (لا يعني ذلك أنني واجهت أي أخطاء ، ولكن قد تكون هناك مشكلات جيدة ، كما أن الاحتفاظ بعلامة "beta" يجعل من السهل تكرارها و تغيير الأشياء التي تحتاج إلى تغيير قبل الحصول على واجهة برمجة تطبيقات أكثر استقرارًا)

نحصل على ردود من المساهمين وكأنها ليست أولوية. يمكنني أن أجادل في ذلك وأقول أن الإفراج عن هذا حتى يصلح دعم AOT و Ivy مهم إلى حد ما. لقد كان AOT لفترة من الوقت وفي غضون شهرين ، سيكون Angular 9 موجودًا مع Ivy (متوقع) مستقر. أنا شخصياً لا أرى أي سبب للادعاء بأنه ليس أولوية بالضبط.

ثانيًا ، ما هي المشكلة في مجرد تشغيل أحد الأوامر وتحريره إلى npm؟

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

وتذكر أنه من المحتمل أن يستفيد 60 ألف شخص أسبوعيًا من الإصدار الجديد ؛)

شكرا

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

موافق.

ليس لدينا أي شيء ضدك في تفصيل ونشر lib الخاص بنا ، ولهذا السبب فهو مفتوح المصدر. 😄
أحاول إخراجها ، لكنها ليست سهلة مثل "تشغيل أمر". أتوقع إصدار beta.8 قبل Angular 9.

كيف يمكنني أن أقدم المساعدة؟ أي ميزة تحتاج إلى اختبار أو تطوير؟

mruknowme من فضلك لا تفعل ذلك.

@ doom777 بدأ يفعل ذلك بالضبط قبل أن يكون هناك المزيد من الزخم على هذا الريبو. لقد فعل الكثير للمساعدة في تحريك الكرة وأنا أتفهم أنك لست سعيدًا بالسرعة ، ولكن _ لقد تحسنت_ والتشعب فقط يربك الناس بدلاً من جعلنا نعمل معًا لمحاولة جعل الأمور أسرع.

تحديث: أحاول الحصول على هذا الإصدار ، لسوء الحظ ، يتعذر الوصول إلى سيباستيان ويمكنه فقط إجراء عمليات نشر npm.

مهلا،

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

إفرايم خانتسيس [email protected] schrieb am Mo. 16. سبتمبر 2019 um
17:06:

تحديث: أحاول الحصول على هذا الإصدار ، للأسف سيباستيان
لا يمكن الوصول إليه وهو الوحيد الذي يمكنه تنفيذ عمليات نشر npm.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/SebastianM/angular-google-maps/issues/1647؟email_source=notifications&email_token=AACDGRABQG3CO4VBHKU3N23QJ6OHZA5CNFSM4HSA7KD2YY3PNVWWK3TUL52HS4DFVREXG43
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AACDGRFLFLAZMJKKVQZUM7DQJ6OHZANCNFSM4HSA7KDQ
.

مرحبًا SebastianM ،

آسف ، لا أتذكر أنني أرسل لك رسالة!
لماذا يجب أن أرسل لك رسالة؟

هتافات،
افرايم

SebastianM هل تشير إلى تعليق @ doom777 https://github.com/SebastianM/angular-google-maps/issues/1647#issuecomment -524882295؟

راجع للشغل لقد تركت لك رسالة على تويتر: د

نتفهم جميعًا أنك مشغول ونقدر لك الوقت والجهود المبذولة للحفاظ على هذه المكونات الإضافية :)

مهلا! سعيد بوجودك. أحاول دائمًا الوصول إليك على تويتر.

SebastianM إذا كنت متاحًا بالفعل ، فهل يمكنك تحديث نموذج stackblitz لاستخدام أحدث إصدار من AGM؟

طبعا أكيد

Am Mo. ، 16. سبتمبر 2019 أم 20:20 Uhr schrieb Ephraim Khantsis <
[email protected]>:

SebastianM https://github.com/SebastianM إذا كنت متاحًا بالفعل ،
هل يمكنك تحديث نموذج stackblitz لاستخدام أحدث إصدار من AGM؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/SebastianM/angular-google-maps/issues/1647؟email_source=notifications&email_token=AACDGRDKLMG7VFW7CP6KVYDQJ7E5PA5CNFSM4HSA7KD2YY3PNVWWK3TUL52GN6DFVREX43
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AACDGRA3WT7CYHW3JSZEMC3QJ7E5PANCNFSM4HSA7KDQ
.

SebastianM @agm/core 1.0.0 كان يعمل بشكل جيد مع Angular 9.0.0-next.6 لكن مع Angular 9.0.0-next.7 بدأ بإلقاء هذا الخطأ مرة أخرى https://github.com/angular/angular/issues/32506

هل يمكنك إلقاء نظرة من فضلك؟

بالنظر إلى هذا الآن ، يحتوي @agm/core 1.0.0 على حزم بها مُصممون مُمثلون بطريقة غريبة بالنسبة لي. أنا أبحث في ذلك.

شكرًا JoostK ، أتطلع إلى الإصلاح قريبًا :)

لذلك تمكنت من التأكد من أن ngcc غير قادر على التعامل مع الطريقة التي يتم بها انبعاث أدوات الديكور منذ https://github.com/ng-packagr/ng-packagr/pull/1401 ، الذي تم إصداره في ng-packagr 5.5.1.

ومع ذلك ، لا يزال هذا مفاجئًا ، حيث يشير ملف yarn.lock في الريبو هذا إلى استخدام ng-packagr 5.4.3. SebastianM هل يمكنك تأكيد ما إذا كان يتم استخدام إصدار جديد من ng-packagr للنشر ، دون تحديث الملف yarn.lock ؟

لا ، تم استخدامه مع 5.4.3

تحديث: المحاولة باستخدام 5.5.1 لا تساعد أيضًا

إليك إعلان علاقات عامة يتعامل مع طريقة تواجد المصممين في @agm/core 1.0.0: https://github.com/angular/angular/pull/32901

@ doom777 كيف تعرف هل أنت من نشر البيان؟ لا أفهم تمامًا كيف يمكن أن يتضمن الإصدار 1.0.0 من @agm/core __decorate مكالمات ctorParameters و __decorate إذا تم إنشاؤه باستخدام أي شيء آخر غير ng-packagr 5.5.1 .

يعمل المكون الإضافي بشكل مثالي مع Angular 9.0.0-next.9 ، شكرًا لك JoostK على العمل الرائع :)

لقد تحولت أخيرًا إلى @ angular / google-maps ، وأعمل بشكل رائع حتى الآن :)

حسنا، حظا موفقا. ضع في اعتبارك أن لديها ميزات أقل بكثير

فقط لإضافة: نحن نواجه صعوبة كبيرة في التوافق مع اللبلاب الزاوي في 8.0 ، ولكن في 9.0 يعمل بشكل جيد.

"@angular/core": "~9.1.0",
عندما أقوم بإضافة forRoot إلى وحدة ميزة وأطلق عليها AppModule->Imports . يحدث هذا الخطأ. لا يمكن إيجاد أي حل. لقد استخدمت Angular CLI Today لإنشاء التطبيق الجديد.

"@angular/core": "^9.1.6",
نفس...
"عندما أقوم بإضافة forRoot إلى وحدة ميزة واستدعائها في AppModule-> Imports. يحدث هذا الخطأ. لا يمكنني العثور على أي حل. لقد استخدمت Angular CLI Today لإنشاء التطبيق الجديد."

اكتشفت أخيرًا مشكلة حالتي.

... في الوحدة ...

let registry = null;

export class UiUniversalCoreModule {
  public static forRoot(elements): ModuleWithProviders<UiUniversalCoreModule> {
    // Angular 9 required <UiUniversalCoreModule>
    registry = elements; // and had to change this code to work.
    return {
      ngModule: UiUniversalCoreModule,
      providers: [
        ComponentBuilderService
      ]
    };
  }
}

... تغير إلى ...

let registry = null;
function ngModuleIssue(elements){
  registry = elements;
  return ComponentBuilderService;
}

export class UiUniversalCoreModule {
  public static forRoot(elements): ModuleWithProviders<UiUniversalCoreModule> {
    return {
      ngModule: UiUniversalCoreModule,
      providers: [
        ngModuleIssue(element)
      ]
    };
  }
}
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات