جاوااسکریپت - چگونه میتوانم بفهمم کدام بخش از برنامهام وابستگی حلقوی دارد؟


من در پروژه انگولار با خطاهای زیادی از نوع وابستگی حلقوی مواجه هستم و متأسفانه پروژهام به درستی اجرا نمیشود.

چطور میتوانم پیدا کنم کدام قسمت از برنامهام وابستگی حلقوی دارد؟

Warning: Circular dependency detected:
   src\app\@core\data\services\project-management\project\project-target.service.ts -> 
   src\app\@core\data\services\shared\data.service.ts -> src\app\auth\security.service.ts -> 
   src\app\@core\data\services\project-management\index.ts -> 
   src\app\@core\data\services\project-management\project\project-target.service.ts

پاسخ شماره ۱

این بدان معناست که کلاسها یا ماژولها به یکدیگر ارجاع میدهند. در حالی که شما باید سعی کنید از این کار اجتناب کنید، همیشه امکانپذیر نیست.

برای مثال، یک وابستگی دایرهای زمانی است که A به طور مستقیم به B اشاره میکند و بالعکس: A -> B -> A، یا به صورت غیرمستقیم A -> B -> C -> A.

اگر ممکن است، شما باید این زنجیره وابستگی را بشکنید. شاید ماژولهای در B قابل جابجایی به A باشند یا شاید وابستگیهایی که هم A و هم B به آنها ارجاع میدهند، بتوانند به C منتقل شوند.

در مورد شما، میتوانید هر دو نوع ارجاع دایرهای مستقیم و غیرمستقیم را ببینید.

آیا درست متوجه شدهام که فایل index.ts شما توسط ماژولهای دیگر مورد ارجاع قرار میگیرد؟ اگر چنین است، نباید این اتفاق بیفتد. index.ts فایل پایه پروژه است و نباید توسط هیچ چیز دیگری در پوشه src ارجاع داده شود.