دستورات NPM که باید بدانید – توضیح ۱۹ دستور با کاربرد
«Node Package Manager» که معمولاً «NPM» نامیده میشود نوعی ابزار خط فرمان است که در محیط «نود جی اس» (Node.js) ادغام شده و برای کار با بستهها مورد استفاده قرار میگیرد. در اصل عملکرد اصلی این ابزار مدیریت بسته است و به توسعهدهندگان اجازه میدهد تا کتابخانهها، بستهها و ماژولهای ضروری برای برنامههای Node.js خود بدون زحمت نصب، بهروزرسانی و نظارت کنند. یکی از مهمترین چیزهایی که باید در مورد NPM بیاموزیم دستورات آن هستند. در مطلب قبل از «مجله فرادرس» در رابطه با اینکه NPM چیست و چه کاربردی دارد توضیحاتی کامل ارائه شد. این بار میخواهیم که مجموعه کاملی از دستورات NPM را مورد بررسی قرار دهیم.
هدف از این مطلب ارائه راهنمایی جامع در ارتباط با پرکاربردترین دستورات NPM و آشنایی کاربران با اهداف این دستورات است. این منبع را همچنین میتوان بهعنوان نوعی برگه تقلب NPM نیز در نظر گرفت و هر زمانی که لازم شد به آن مراجعه کرد. مطالعه این مطلب به کاربر امکان میدهد قابلیتها و ویژگیهای متنوع NPM را درک کرده و به طور کامل از آن استفاده کند.
کار NPM چیست؟
در اصل NPM، فرآیند دانلود و مدیریت کتابخانههای خارجی و وابستگیها را ساده میکند. این بستهها و کتابخانهها اغلب در پروژههای Node.js استفاده میشوند. با این وجود، NPM کاربردی بیش از مدیریت بسته ارائه میدهد. این ابزار همچنین کارهایی مانند به اشتراکگذاری کد، توزیع، اجرای اسکریپت و ایجاد پروژه را تسهیل میکند. این کاربردها موجب شدهاند که NPM به ضروریترین ابزار در اکوسیستم Node.js تبدیل شود.
اهمیت NPM در نود جی اس چیست؟
NPM به عنوان پلی محوری عمل میکند که برنامه Node.js را به جامعه جهانی توسعهدهندگان متصل خواهد کرد. این قابلیت به کاربران امکان دسترسی به مخزن گستردهای از بستهها و کتابخانهها را میدهد که به وسیله متخصصان در سراسر جهان ساخته شدهاند. در واقع NPM به توسعهدهنده امکان میدهد راهحلها و تکنیکهای سایر توسعهدهندگان را در پروژههای خود به کار ببرد و این در زمان و هزینه او صرفهجویی میکند.
قدرت واقعی NPM در سادگی ظریف و کارایی قابلتوجه آن نهفته است. این ابزار بدون داشتن اثر جانبی روی پروژه، مدیریت بستههای ضروری را برای ارائه عملکرد روان برنامه ارائه میدهد. چه برنامه به تعداد بسته زیادی و یا کمی نیاز داشته باشد، NPM فرآیند توسعه آن را ساده میکند. در کار با NPM همهچیز با اعلان یا دستور ساده شروع میشود و از آنجا، NPM به طور یکپارچه کارهای سنگین را انجام میدهد و آنجاست که واکشی بستههای مورد نیاز، انجام نصب و اطمینان از بهروزرسانی به موقع، همه با سهولت و بیدردسر انجام میشوند.
دستورات NPM
دستورات NPM مجموعهای از اقدامات قابلدستیابی به وسیله ابزار NPM هستند که با استفاده از ابزار خط فرمان اجرا میشوند و اغلب با یک یا چند آرگومان همراه هستند. برای مثال در دستور npm install expressعبارت installمعنای فرمان و expressبه معنای آرگومان است.
فهرستی از دستورات NPM وجود دارد که هرکدام به طور دقیق برای اجرای کاری خاص ساخته شدهاند. اگرچه آشنایی با همه این دستورات کاری مفید است ولی با این حال لزومی به استفاده و یادگیری همه آنها نیست. در جدول زیر، خلاصهای مختصر از متداولترین دستورات NPM به همراه توضیحات مختصری در مورد عملکرد آنها ارائه شده است:
دستور | شرح دستور |
npm init | پروژه NPM جدید را راه اندازی کرده و فایل package.json را در دایرکتوری ایجاد میکند. |
npm install | تمام وابستگیهای لازم را در فایل package.json نصب میکند. |
npm install [package] | بسته خاصی را نصب کرده و آن را به فهرست وابستگیها در package.json اضافه میکند. |
npm install [package] --save-dev | بسته خاصی را به عنوان وابستگی توسعه نصب میکند. |
npm uninstall [package] | بسته خاص را از node modulesو package.json حذف میکند. |
npm update | همه بستهها را به آخرین نسخههایشان، مطابق با محدودههای نسخه package.json بهروزرسانی میکند. |
npm update [package] | بسته خاص را به آخرین نسخه آن بهروز میکند. |
npm ls | درخت وابستگی را برای پروژه فعلی نمایش میدهد و بستهها و وابستگیهای نصب شده را فهرست میکند. |
npm test | اسکریپت آزمایشی تعریف شده در بخش اسکریپتهای package.json را اجرا میکند. |
npm run [script] | اسکریپت تعریف شده در قسمت اسکریپتهای package.json را اجرا میکند. |
npm publish | بستهای را در رجیستری NPM منتشر میکند. |
npm version [update_type] | شماره نسخه را در package.json بر اساس نوع بهروزرسانی مشخص شده، بهروزرسانی میکند. |
npm audit | آسیب پذیریهای شناخته شده در بستههای نصب شده را اسکن میکند و پیشنهادات اصلاحی را ارائه میدهد. |
npm cache clean --force | کش NPM را که اغلب برای حل مشکلات نصب بسته استفاده میشود، پاک میکند. |
npm outdated | بستههای قدیمی را در پروژه شناسایی میکند. |
npm root | دایرکتوری ریشهای که بستههای کاربر در آن ذخیره میشوند را نشان میدهد. |
npm config get prefix | دایرکتوری را که بستههای جهانی در آن نصب شدهاند بازیابی میکند. |
جدول فوق نگاه اجمالی از این دستورات و عملکرد آنها را ارائه میدهد. با این حال، برای استفاده ماهرانه و کارآمد از قابلیتهای NPM، بررسی پیچیدگیهای دستورات NPM بسیار مهم است. در ادامه این دستورات با جزئیات بیشتری مورد بررسی قرار خواهند گرفت.
دستور NPM init
دستور npm initراهنمایی برای مقداردهی اولیه پروژه NPM جدید است. هنگام اجرا، این دستور از کاربر میخواهد که اطلاعات ضروری در مورد پروژه خود را ارائه دهد. این جزئیات شامل موارد زیر است:
- نام پروژه
- نسخه
- توضیحات
- فایل اصلی
- فرمان تست
- مخزن Git
- کلمات کلیدی
- نویسنده
- نوع مجوز
سپس از این ورودی برای تولید فایل «package.json» در پوشه اصلی فعلی استفاده میشود که به عنوان فایل اصلی پروژه عمل میکند. در این «package.json»، «ابردادههای» (Metadata) مربوط به پروژه به همراه فهرستی از وابستگیهای آن پیدا خواهد شد. این فهرست NPM را قادر میسازد تا تشخیص دهد که کدام بستهها باید برای اطمینان از عملکرد پروژه نصب شوند. برای راهاندازی سریع پروژه بدون نیاز به ورودی تعاملی، میتوان گزینه npm init -yرا انتخاب کرد که «package.json» را با مقادیر پیشفرض پر میکند. «سینتکس» (Syntax) استفاده از این دستور به صورت زیر است:
1$ npm init
با فراخوانی این دستور، NPM فرآیند ایجاد پروژه را آغاز کرده و کاربر را به وسیله ارائه جزئیات ضروری پروژه راهنمایی میکند.
دستور NPM install
در میان دستورات NPM، دستور npm installیکی از مهمترین آنها و سنگ بنای این دستورات است. هدف این دستور نصب بستههای ضروری برای عملکرد پروژه است. هنگام اجرا، این دستور به فایل «package.json» اشاره کرده و وابستگیهای پروژه را شناسایی میکند و به نصب آنها ادامه میدهد.
به سادگی با اضافه کردن نام بسته پس از دستور npm install، میتوان به NPM دستور داد آن بسته خاص را نصب کند. به عنوان رفتار پیشفرض، NPM آخرین نسخه موجود بسته را نصب میکند. با این وجود، اگر به نسخه خاصی از بسته نیاز باشد، میتوان آن را با ارائه شماره نسخه، برچسب یا محدوده نسخه مشخص کرد. نمونه استفاده از این دستور به صورت زیر است:
1$ npm install
در دستور فوق، تمام وابستگیهای پروژه فهرست شده در «package.json» نصب میشوند. نمونه دیگر به صورت زیر است:
1$ npm install express
دستور بالا با افزودن نام بسته (به عنوان مثال، express)، NPM آخرین نسخه بستهexpressرا نصب میکند. مثال زیر هم برای نشان دادن این دستور است.
1$ npm install express@4.17.1
در مثال بالا به NPM دستور داده شده است که نسخه 4.17.1بسته expressرا به صراحت نصب کند. مثال دیگری به صورت زیر است:
1$ npm install express@latest
همچنین دستور فوق تضمین میکند که آخرین نسخه موجود بسته expressنصب شده است. npm installهمچنان فرمانی اساسی برای مدیریت وابستگیهای پروژه است و فرآیند ترکیب بستههای خارجی را در پروژه Node.js ساده میکند.
دستور NPM install [package] --save-dev
در حالی که دستور استاندارد npm install [package]برای نصب بسته به عنوان وابستگی تولید به کار میرود اما در برخی از سناریوها شرایطی پیش میآید که کاربر به طور خاص به بستهای تنها در مرحله توسعه نیاز دارد. برای مثال کتابخانههای موردنیاز برای تست، «ترانسپایلرها» (Transpilers) و «لنترها» (Linters) نمونههای بارز بستههایی هستند که معمولاً در طول توسعه ضروریاند و در محیطهای تولید به آنها نیازی نیست.
برای رفع این نیاز، دستور npm install [package] --save-devوارد عمل میشود. این دستور کار دوگانه نصب بسته تعیین شده و الحاق آن به بخش devDependenciesدر فایل package.json پروژه را انجام میدهد. این دستور از دستورات NPM روشن میکند که بسته منحصراً به عنوان نوعی وابستگی توسعه عمل میکند. مثال زیر نحوه استفاده از این دستور را نشان میدهد:
1$ npm install jest --save-dev
این دستور بسته jestرا نصب کرده و آن را به صراحت به عنوان وابستگی توسعه در package.json علامتگذاری میکند. چنین مدیریت دقیق وابستگیهای توسعه هنگام تنظیم گردش کار توسعه قوی و کارآمد ضروری است.
دستور NPM uninstall
با دستورات NPM، نه تنها میتوان بدون زحمت بستهها را وارد پروژه خود کرد، بلکه میتوان در مواقعی که دیگر نیازی به آنها نیست، آنها را از پروژه حذف کرد. دستور انجام این کار npm uninstallاست و به دنبال آن نام بستهای خواهد آمد که کاربر قصد حذف آن را دارد. هنگامی که دستور حذف اجرا شد، بسته مشخص شده را از دایرکتوری node_modulesپاک میکند.
علاوه بر این، دستوە نام برده مسئولیت حفظ یکپارچگی وابستگیهای پروژه را با بهروزرسانی فایلهای «package.json» و «package-lock.json» بر عهده میگیرد تا بهطور دقیق حذف بسته را منعکس کند. مثال زیر نحوه استفاده از این دستور را نشان میدهد:
1$ npm uninstall express
در مثال فوق از مجله فرادرس، بسته expressاز پروژه حذف میشود و اطمینان حاصل میکند که وابستگیهای پروژه دقیق و بهروز باقی میمانند. انعطافپذیری NPM در مدیریت بستهها گواهی بر کاربرد آن برای توسعهدهندگان است.
دستور NPM update
با گذشت زمان، بستههای ادغام شده در پروژه ممکن است به وسیله توسعهدهندگان آنها بهروزرسانی شوند. این بهروزرسانیها اغلب ویژگیهای جدیدی را معرفی میکنند، باگها را برطرف کرده یا امنیت بسته را تقویت خواهند کرد. با توجه به این ویژگیها بهروز نگهداشتن بستهها کاری ضروری است. دستور npm updateدر این زمینه به کمک کاربر میآید. این دستور هنگامی که بدون هیچ آرگومان اضافی اجرا شود، تمام بستههای ثبت شده در فایل «package.json» پروژه را بررسی میکند و سپس اقدام به بهروزرسانی این بستهها به آخرین نسخههای آنها، مطابق با محدوده نسخه مشخص شده میکند.
اگر کاربر بخواهد بستهای خاص را بهروزرسانی کند میتواند به عنوان آرگومان نام این بسته را در دستور قرار دهد. با اضافه کردن نام بسته پس از دستور npm updateاین کار به درستی انجام خواهد شد که مثالهای زیر نحوه استفاده از این دستور را نشان میدهند.