
چند وقت یک پروژه Next رو تحویل گرفتم که توسعه ش بدم. یک خط کد تست براش نوشته نشده بود. منم کتابخونه Jest رو نصب کردم که شروع کنم روی پروژه تست بنویسم.
به یک مشکل بزرگ رسیدم. Jest تنظیمات path aliases پروژه رو متوجه نمیشد. با توجه به تغییرات نسخه به نسخه ای که کرده، پیدا کردن راه حل برای نسخه های جدید یک کم طول کشید. برای همین تصمیم گرفتم یک مقاله درباره ش بنویسم.
اول از همه ببنیم این تنظیمات داخل پروژه کجا انجام میشه.
این تنظیمات به کامپایلر typescript مربوط میشه و بنابر این داخل فایل tsconfig.js نوشته میشه. داخل آبجکت compilerOptions و قسمت paths میتونیم تعریفشون کنیم:

یا مثلا میتونه این جوری بشه:

در NextJS با اولین اجرای دستور npm run test به این خطا خوردم که import با حضور path alias رو متوجه نمیشه و خطا میده که این مسیر رو تشخیص نمیدم.
در نسخه های جدید Next باید داخل فایل jest.config.js که با نصب کتابخونه Jest ساخته میشه ، path alias ها رو در بخشی به عنوان moduleNameMapper تعریف کنیم:

شاید چندین راه حل مختلف رو پیدا کردم که همگی قدیمی هستند و متاسفانه به خاطر بازدید بالا، جلوتر و بیشتر نمایش داده میشن. ولی بالاخره راه حل رو پیدا کردم.
شبیه همین مقاله رو زمانی که انگولار کار میکردم به اسم آشنایی با Module Resolution در انگولار نوشتم.
امیدوارم از این مقاله لذت ببرید و براتون مفید باشه.
اگر دوست دارید میتونید از طریق صفحه لینکدین با من در ارتباط باشید :)
اصل مقاله شامل پیاده سازی با جاوا هم هست. میتوانید مقاله اصلی رو اینجا مطالعه کنید.
موفق باشید