اخیراً، من باید برخی از کدهای کاربردی خود را در یک بسته NPM مستقل کپسوله کنم. از آخرین باری که روی چیزی مشابه کار کردم، چند سال گذشته بود و به سرعت متوجه شدم که برخی چیزها تغییر کرده است. در طول مسیر با چند دام مواجه شدم که به من انگیزه داد تا این مقاله را به عنوان مرجع و راهنما بنویسم.
تمرکز و الزامات
این مقاله بر روی بهینهسازی تجربه توسعهدهنده در هنگام استفاده از کد کتابخانهتان بهعنوان یک وابستگی NPM تمرکز دارد. پشته فناوری ضمنی شامل موارد زیر است:
- یک برنامه وب میزبان با استفاده از React، بوت استرپ شده است
react-scripts
- کتابخانه ای که از React نیز بهره می برد
- TypeScript هم برای برنامه میزبان و هم برای کتابخانه
الزامات کلیدی برای یکپارچه سازی کتابخانه بدون درز، تضمین بهترین تجربه توسعه دهنده، عبارتند از:
- کتابخانه باید توسط یک برنامه میزبان مبتنی بر TypeScript قابل مصرف باشد
- باید امکان گنجاندن کتابخانه به صورت محلی از طریق وجود داشته باشد
file:/path/to/the/library
- کتابخانه همچنین باید از طریق پیوند GitHub قابل نصب باشد
- حالت تماشای کامپایلر TypeScript باید برای کتابخانه عمل کند
من در این مقاله عمیقاً به تنظیمات TypeScript نمی پردازم. اگر در این زمینه به کمک نیاز دارید، به راحتی به آن مراجعه کنید tsconfig.json
تنظیمات موجود در مخازن من هم برای برنامه میزبان و هم برای کتابخانه.
بیایید شروع کنیم!
راه اندازی TypeScript
فرض کنیم داریم "outDir":...