Angular 10 Libraries และ IVY / ngcc Compatibility

Aug 28 2020

ฉันมีไลบรารีที่ต้องเผยแพร่ผ่านทาง npm คำแนะนำสำหรับ Angular 10 ยังคงดูเหมือนว่าไลบรารีดังกล่าวควรถูกรวบรวมโดยปิดใช้งาน IVY แต่ Angular CLI จะทำให้แน่ใจว่าไลบรารียังคงเข้ากันได้กับแอพที่เปิดใช้งาน IVY

ด้วยห้องสมุดของฉันถ้าฉันสร้างด้วย IVY มันจะทำงานได้ตามที่คาดไว้ แต่ถ้าฉันปิดการใช้งาน IVY เมื่อสร้างเมื่อฉันมานำเข้าไลบรารีฉันได้รับข้อผิดพลาดต่อไปนี้:

ข้อผิดพลาดใน node_modules/@me/my-module/lib/my-module.module.d.ts: 1: 22 - ข้อผิดพลาด NG6002: ปรากฏใน NgModule.imports ของ AppModule แต่ไม่สามารถแก้ไขเป็นคลาส NgModule ได้

ซึ่งอาจหมายความว่าไลบรารี (@ me / my-module) ซึ่งประกาศว่า MeMYModule ไม่ได้รับการประมวลผลอย่างถูกต้องโดย ngcc หรือเข้ากันไม่ได้กับ Angular Ivy ตรวจสอบว่ามีไลบรารีเวอร์ชันใหม่กว่าหรือไม่และอัปเดตหากมี ลองตรวจสอบกับผู้เขียนของห้องสมุดเพื่อดูว่าห้องสมุดคาดว่าจะเข้ากันได้กับ Ivy หรือไม่

ฉันพลาดอะไรไปรึเปล่า? ฉันพบปัญหาที่คล้ายกันมากมาย แต่ดูเหมือนจะไม่มีวิธีแก้ปัญหาใด ๆ

คำตอบ

6 snsakib Sep 03 2020 at 02:37

ฉันประสบปัญหาคล้าย ๆ กันเมื่อสองสามวันก่อน ฉันแก้ไขได้โดยเพิ่มสคริปต์ต่อไปนี้ในpackage.jsonไฟล์ของฉัน

"scripts": {
    "postinstall": "ngcc"
  }