وابستگی ها استفاده مجدد موثر از کد را ممکن می سازند. مطمئن شوید که می دانید چگونه آنها را در پروژه های Node خود مدیریت کنید.
وابستگی قطعه ای از کد است – یک کتابخانه، یک ماژول یا یک بسته – که یک پروژه برای عملکرد صحیح به آن نیاز دارد.
در Node.js، وابستگی ها و devDependencies دسته بسته هایی هستند که می توانید در فایل package.json خود برای مدیریت وابستگی های پروژه خود تعریف کنید. تفاوت های آنها را بررسی کنید و یاد بگیرید که چگونه از آنها در پروژه های خود استفاده کنید.
وابستگی های منظم در یک پروژه npm
وابستگیهای معمولی – یا، بهطور ساده، وابستگیها – بستههایی هستند که برنامه شما برای کار در زمان اجرا و در محیطهای تولید به آنها نیاز دارد.
وابستگی ها می توانند شامل موارد زیر باشند:
- کتابخانه های خارجی که عملکردهای از پیش ساخته شده را ارائه می دهند، مانند lodash.
- چارچوب هایی که پایه یا ساختاری را برای ساخت برنامه های کاربردی مانند Express یا React فراهم می کنند.
- درایورهای پایگاه داده مانند MongoDB یا sqlite3.
- بسته هایی که به کارهای مرتبط با شبکه کمک می کنند، مانند Axios یا Socket.io.
به عنوان مثال، اگر یک CRUD API با Express.js میسازید، express یکی از وابستگیهای شما خواهد بود زیرا سرور شما برای عملکرد به آن نیاز دارد.
برای نصب وابستگیهای زمان اجرا، میتوانید از یک مدیریت بسته مانند npm، Node Package Manager یا Yarn استفاده کنید.
وابستگی ها در زیر شی dependencies در فایل package.json وجود دارد. شیء dependencies نام و نسخه بسته ها را ذخیره می کند.
برای نصب یک بسته به عنوان یک وابستگی با استفاده از NPM، دستور زیر را اجرا کنید:
npm install <package-name>
دستور بالا بسته را نصب می کند و آن را به عنوان وابستگی پروژه شما در package.json ثبت می کند:
// package.json
"dependencies": {
"package-name": "^package-version",
}
هنگامی که یک پروژه را از یک مخزن مبتنی بر وب کلون می کنید، می توانید وابستگی ها را با اجرای دستور زیر نصب کنید:
npm install
هنگامی که دستور بالا را اجرا می کنید، مدیر بسته شما فایل package.json را می خواند و وابستگی ها و devDependencies مشخص شده را از رجیستری بسته نصب می کند.
وابستگی های توسعه و نحوه استفاده از آنها
Dependencies توسعه یا devDepenendencies بسته هایی هستند که برنامه شما فقط در طول فرآیند توسعه به آنها نیاز دارد. به عبارت دیگر، آنها در تولید مورد نیاز نیستند.
Dependencies می تواند شامل موارد زیر باشد:
- فریم ورک های آزمایشی، مانند Jest یا Mocha.
- دوندگان آزمون، مانند چای.
- لینترها و قالبکنندهها، مانند Eslint.
- ابزارهای مستندسازی، مانند Swagger.
یک مثال رایج از devDepenedency بسته Nodemon است که با تشخیص تغییرات در اسکریپت های شما سرور شما را مجددا راه اندازی می کند.
می توانید devDependencies را در زیر شی devDependencies در یک فایل package.json تعریف کنید. این شی نام و نسخه بسته ها را ذخیره می کند.
با اجرای این دستور می توانید یک بسته را به عنوان devDependency نصب کنید:
npm install <package-name> --save-dev
همچنین، میتوانید با اجرای این دستور یک بسته را بهعنوان devDependency نصب کنید:
npm install -D <package-name>
دستور بالا بسته را در فایل package.json شما نصب و ثبت می کند، مانند:
// package.json
"devDependencies": {
"package-name": "^package-version"
}
هنگامی که پروژه ای را از یک مخزن مبتنی بر وب کلون می کنید، اجرای دستور npm install Dependencies را نیز نصب می کند.
با این حال، اجرای دستور با پرچم تولید فقط وابستگی ها را نصب می کند.
مثلا:
npm install --production
هنگامی که دستور بالا را اجرا می کنید، مدیر بسته شما فایل package.json را می خواند و وابستگی های برنامه شما را از رجیستری بسته نصب می کند.
همچنین، میتوانید متغیر NODE_ENV را روی «production» تنظیم کنید تا به نتایج مشابهی برسید.
انواع دیگر وابستگی ها
علاوه بر وابستگیها و devDependencies، Node.js بستهها را بهعنوان peerDepenecies و optionalDependencies نیز دستهبندی میکند.
وابستگی های همتا
وابستگیهای همتا وابستگیهایی هستند که یک بسته زمانی از آن استفاده میکند که انتظار دارد یک نسخه خاص یا یک نسخه سازگار از بسته دیگر در برنامه با استفاده از آن وجود داشته باشد.
هدف از وابستگیهای همتا این است که اطمینان حاصل شود که یک بسته با وابستگیهایش به درستی کار میکند و از تضادها یا مسائل سازگاری اجتناب میکند.
برای نسخههای npm کمتر از v7، وابستگیهای همتا بهطور خودکار نصب نمیشوند. در عوض کدی که شامل بسته است باید آن را به عنوان یک وابستگی شامل شود. اگر بسته شامل آن نباشد، npm یک هشدار ایجاد می کند.
آنها در زیر شی peerDependencies در فایل package.json وجود دارند:
"peerDependencies": {
"package": "^version"
}
وابستگی های اختیاری
وابستگی های اختیاری بسته هایی هستند که برای عملکرد اصلی یک پروژه ضروری نیستند اما در صورت وجود می توانند قابلیت های آن را افزایش دهند.
از آنجایی که برای درست کار کردن پروژه به وابستگی های اختیاری نیاز نیست، می توانید آنها را در حین نصب حذف کنید.
با اجرای دستور زیر، وابستگی های اختیاری در طول فرآیند نصب حذف می شود:
npm install --omit=optional
آنها تحت شیء optionalDependencies در فایل package.json وجود دارند:
"optionalDependencies": {
"package": "^version"
}
دستهها مدیریت وابستگیهای شما را آسانتر میکنند
درک مؤثر، مدیریت و طبقهبندی وابستگیها به اطمینان از جدایی واضح بین بستههای مورد نیاز برای تولید و بستههای مورد نیاز فقط در طول توسعه کمک میکند.
این تمایز به مدیریت وابستگی کارآمد، بسته بندی مناسب و استقرار ساده پروژه شما کمک می کند.