۱۰ نکته در مورد NPM که باید بدانید — راهنمای کاربردی
در این مقاله 10 نکته در مورد NPM را مطرح میکنیم که هر توسعهدهندهای باید با آنها آشنا باشد. با ما تا انتهای این راهنما همراه باشید.
NPM چیست؟
NPM اختصاری برای عبارت «ابزار مدیریت پکیج Node» معادل (Node Package Manager) است و اغلب برنامههای جاوا اسکریپت به صورت یک پکیج در NPM ثبت شدهاند. در NPM بیش از 700 هزار پکیج ثبت شدهاند و بزرگترین اکوسیستم IT محسوب میشود. Yarn یک جایگزین برای NPM است که از سوی فیسبوک خلق شده است.
package.json
یک پکیج بسته به نسخههای مختلف میتواند کارکردهای متفاوتی داشته باشد. فایل package.json همه پکیجهای نصب شده را ردگیری میکند. دستور ایجاد این فایل به صورت زیر است:
$ npm init
موارد مرتبط به شرح زیر هستند:
- package name – نام پکیج است که شامل مشخصه name فایل package.json است.
- version – نسخه npm است که به صورت صریح مدیریت میشود.
- entry point – نقطه ورودی فایل اجرایی جاوا اسکریپت است که در اغلب موارد آخرین فایل module.exports است.
- git repository – مشخصه repository فایل package.json است.
- keywords – به کاربر امکان میدهد که پکیج را به سهولت در وبسایت رسمی NPM پیدا کند. مشخصه keywords فایل package.json است.
License
انواع مختلفی از لایسنسها برای پکیجها وجود دارند که شامل موارد زیر میشوند:
- لایسنس ISC, MIT, BSD – استفاده از آن در صورت اشاره به ماژول و لایسنس رایگان خواهند بود.
- لایسنس Apache – استفاده از آن رایگان است اما حق پتنت محدودی است.
- لایسنس GPL – باید سورس کد به صورت عمومی عرضه شود و در زمان انتشار تحت لایسنس توزیع یابد.
Scripts در package.json
مشخصه script دستور npm را مشخص میسازد برای نمونه دستوری مانند زیر تعیین میشود:
npm run [SCRIPT COMMAND]
در اغلب موارد node [FILE NAME] تحت دستور start ذخیره میشود و npm start مانند React.js و Vue.js اجرا میشود.
گزینه save—
گزینه save— به دستور npm install مربوط است و اغلب در راهنماها استفاده میشود. گزینه npm install نام پکیج را به dependencies اضافه میکند، اما شکل پیشفرض آن به صورت npm@5 است. از این رو نیازی به تعیین گزینه save option— برای دستور npm install وجود ندارد.
گزینه save-dev—
گزینه save-dev— برای پکیجهای صرفاً در زمان توسعه استفاده میشود. برای نمونه nodemon هر زمان که سورس کد تغییر یابد یک بارگذاری مجدد بیدرنگ ایجاد میکند و در اغلب موارد در زمان توسعه مورد استفاده قرار میگیرد. گزینه save-dev— را با استفاده از D— میتوان باطل کرد.
1// console
2npm install --save-dev nodemand
3// package.json
4{
5 ...
6 "devDependencies": {
7 "nodemon": "^1.17.3"
8 }
9}
نسخه پکیج
نسخه پکیج Node همواره شامل 3 عدد است، زیرا از قاعده SemVer اختصاری برای عبارت «نسخهبندی معناشناختی» (Semantic Versioning) پیروی میکند. برای نمونه شماره نسخه 1.0.7 ر درنظر بگیرید:
عدد نخست (1)
نشانگر نسخه اصلی است. علامت پرانتز () اختصاری برای نسخه توسعه است، نسخه رسمی از 1 آغاز میشود. نسخه اصلی تنها زمانی افزایش مییابد که تغییری ایجاد شده باشد که با نسخه قبلی ناسازگار باشد، یعنی بهروزرسانی از نسخه 1.5.0 به 2.0.0 به این معنی است که ممکن است خطاهایی به جهت این ارتقا رخ دهد.
عدد دوم (0)
نشانگر نسخه فرعی است. نسخه پایینتر عموماً سازگار است و اغلب یک بهروزرسانی کارکرد را شامل میشود یعنی با ارتقا از نسخه 1.5.0 به 1.6.0 نباید مشکلی از نظر سازگاری پدید آید.
عدد سوم (7)
نشانگر نسخه وصله است. خطاهای موجود را اصلاح میکند، یعنی ارتقا از 1.5.0 به 1.5.1 موجب هیچ خطایی نخواهد شد.
نمادهای ^, < و ~ برای نسخه پکیج
در این بخش این نمادها را که در نسخه پکیج استفاده میشوند توضیح میدهیم.
- ^ به معنی نصب/بهروزرسانی نسخه فرعی است. یعنی دستور npm i express@^1.1.1 یک نسخه بین 1.1.1 تا 2.0.0 را نصب میکند.
- ~ نسخه وصله را نصب/بهروزرسانی میکند. یعنی دستور npm i express@~1.1.1 نسخهای بین 1.1.1 تا 1.2.0 را نصب میکند.
- latest@ برای نصب جدیدترین نسخه پکیج استفاده میشود.
نکته: ^ معمولاً مفیدتر از ~ است، زیرا بهروزرسانی نسخه فرعی با نسخه پایینتر سازگار است و بیشترین کارکرد را دارد.
دستور npm outdated
با استفاده از دستور npm outdated میتوانیم پکیجهای به روزرسانیشده را پیدا کنیم.
در صورتی که Current و Wanted متفاوت باشند، به یک بهروزرسانی نیاز خواهیم داشت. با استفاده از دستور npm update [PACKAGE NAME] میتوان بهروزرسانی کرد. اجرای دستور npm update موجب بهروزرسانی همه پکیجها به نسخه تعیین شده در Wanted میشود.
منابع مفید
برای مقایسه پکیجها میتوانید از وبسایت npmcompare (+) استفاده کنید.
همچنین برای بررسی و دانلود یک پکیج از خدمات وبسایت npmtrends (+) استفاده کنید.
به این ترتیب به پایان این مقاله میرسیم.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای جاوا اسکریپت
- مجموعه آموزشهای برنامهنویسی
- آموزش JavaScript ES6 (جاوااسکریپت)
- کدنویسی و انتشار پکیج NPM — از صفر تا صد
- آموزش Node.js: آشنایی با npm و npx — بخش پنجم
==