NPM چیست و چه کاربردی دارد؟
“مدیر بسته Node Package Manager (NPM)” یک ابزار محبوب در جاوا اسکریپت است که به طور گسترده در اکوسیستم Node.js برای مدیریت و به اشتراک گذاری کتابخانهها و بستههای کد استفاده میشود. آشنایی با NPM یک مهارت اساسی در توسعه وب است، به ویژه برای افرادی که از محیط Node.js برای اجرای برنامهها استفاده میکنند. درک جامع از NPM به عنوان یک ابزار کاربردی ممکن است برای مبتدیان چالش بزرگی باشد. در این مقاله از مجله بایت گیت، به شما اطلاعات کاملی در مورد NPM، کاربردهای آن، نحوه استفاده و سایر موارد مربوطه را ارائه خواهیم داد.
NPM دقیقا چیست؟
NPM (Node Package Manager) یک مدیر بسته برای زبان برنامهنویسی جاوااسکریپت است که برای مدیریت و اشتراکگذاری کتابخانهها و بستههای کد در اکوسیستم Node.js استفاده میشود. این ابزار به توسعهدهندگان اجازه میدهد تا بستههایی را که در پروژههای خود نیاز دارند را به سادگی نصب و مدیریت کنند.
با استفاده از NPM، میتوانید بستههای از پیش طراحی شده را در پروژههای خود استفاده کنید و همچنین بستههای خود را برای سایر توسعهدهندگان در دسترس قرار دهید. NPM یکی از اجزای اصلی اکوسیستم Node.js است و به توسعهدهندگان کمک میکند تا فرآیند توسعه برنامههای جاوااسکریپت را سادهتر و بهینهتر کنند.
Node.js چیست؟
Node.js یک محیط اجرایی مبتنی بر جاوا اسکریپت است که بر روی سرورها بکار میرود. در عین حالی که جاوا اسکریپت اصلاح شده برای اجرا در مرورگرها استفاده میشود، Node.js امکان اجرای جاوا اسکریپت بر روی سرورها را فراهم میکند.
Node.js از موتور V8 جاوا اسکریپت که توسط Google توسعه داده شده استفاده میکند و امکان اجرای کد جاوا اسکریپت را بدون وابستگی به مرورگر فراهم میکند. این امر به توسعهدهندگان اجازه میدهد تا به راحتی برنامههای شبکه، سرورهای وب و برنامههای دیگر را با استفاده از جاوا اسکریپت توسعه دهند.
Node.js بر پایه مدل رویداد (event-driven) و غیربلاکی (non-blocking) عمل میکند که به توسعهدهندگان امکان میدهد برنامههای کارآمد و مقیاسپذیر را با استفاده از روشهای بهینهسازی و مدیریت منابع مناسب ایجاد کنند. این ویژگیها باعث شده است که Node.js برای ایجاد برنامههای شبکه سریع و کارآمد، ابزارها و کتابخانههای متنوعی را فراهم کند.
به طور خلاصه، Node.js یک محیط اجرایی سمت سرور بر پایه جاوا اسکریپت است که توسعهدهندگان را قادر میسازد برنامههای قدرتمند و مقیاسپذیر را بر روی سرورها ایجاد کنند.
ارتباط بین نود جی اس و NPM
NPM (Node Package Manager) یک محیط اجرایی برای اجرای کد جاوااسکریپت است، در حالی که NPM یک مدیر بسته برای جاوااسکریپت است که به طور گسترده بر روی اکوسیستم Node.js استفاده میشود.
Node.js از ساختار ماژولاری برای توسعه برنامهها استفاده میکند. به این معنی که برنامهها در Node.js به صورت ماژولهای جداگانه تقسیم میشوند که هرکدام وظیفه خاص خود را انجام میدهند. NPM در اینجا نقش اصلی را بازی میکند، زیرا به توسعهدهندگان اجازه میدهد تا بستههای مورد نیاز خود را به راحتی مدیریت کنند و از آنها استفاده کنند.
با استفاده از NPM، توسعهدهندگان میتوانند بستههای جاوااسکریپت را نصب، بروزرسانی، حذف و مدیریت کنند. این بستهها میتوانند شامل کتابخانهها، فریمورکها، ابزارها و سایر منابع کد باشند که توسط جامعه توسعهدهندگان Node.js ساخته شدهاند.
بنابراین، با استفاده از NPM، توسعهدهندگان میتوانند بستههای کد را به سادگی به پروژههای Node.js خود اضافه کنند و در همین حین از امکانات و قابلیتهای Node.js بهرهبرداری کنند. این ترکیب از Node.js و NPM توسعهدهندگان را در ایجاد و مدیریت برنامههای قدرتمند و پیچیده تر، با استفاده از منابع خارجی، یاری میرساند.
کاربرد و علت استفاده از NPM چیست؟
استفاده از NPM به توسعهدهندگان جاوا اسکریپت امکانات و فواید زیادی را ارائه میدهد. در زیر تعدادی از دلایل استفاده از NPM را بررسی میکنیم:
- مدیریت بستهها: NPM به شما اجازه میدهد بستهها و کتابخانههای جاوا اسکریپت را به راحتی نصب، بروزرسانی و حذف کنید. با استفاده از دستورات ساده مانند
npm install
وnpm update
میتوانید بستههای مورد نیاز خود را به پروژه اضافه کنید و آنها را بهروز نگه دارید. - به اشتراک گذاری و بازنشر: با استفاده از NPM، شما میتوانید بستههای خود را با سایر توسعهدهندگان به اشتراک بگذارید. همچنین میتوانید بستههای عمومی را از مخازن عمومی NPM دریافت و در پروژههای خود استفاده کنید. این قابلیت به شما کمک میکند تا با استفاده از کد قابل استفاده مجدد و منابع جامعه توسعهدهندگان، زمان و تلاش خود را صرفهجویی کنید.
- اکوسیستم بزرگ: NPM دارای یک اکوسیستم بزرگ و فعال است که شامل هزاران بسته و کتابخانه است. شما میتوانید از این بستهها استفاده کنید تا وظایف مختلف را در پروژههای خود انجام دهید، از جمله اتصال به پایگاه داده، رابط کاربری، تست و غیره. از طریق NPM میتوانید بستههایی را با کیفیت و پشتیبانی جامعه توسعهدهندگان پیدا کنید.
- مدیریت وابستگیها: NPM به شما امکان میدهد تا وابستگیهای پروژه خود را به طور دقیق مدیریت کنید. با استفاده از یک فایل
package.json
، میتوانید وابستگیهای مورد نیاز پروژه را تعیین کنید و با یک دستور، همه وابستگیها را به طور خودکار نصب کنید. - ابزارهای توسعه: NPM ابزارهای مفیدی برای توسعه جاوا اسکریپت فراهم میکند. به عنوان مثال، با استفاده از NPM میتوانید ابزارهای تست، ابزارهای کدزنی، ابزارهای بررسی کد و غیره را به پروژه خود اضافه کنید و فرآیند توسعه را بهبود بطبقهبندی کنید.
به طور خلاصه، استفاده از NPM به شما کمک میکند تا بستههای جاوا اسکریپت را به راحتی مدیریت کنید، از امکانات وابستگیها و به اشتراک گذاری بستهها بهرهبرداری کنید و در اکوسیستم بزرگ و پویای NPM با کمک ابزارهای توسعه متنوع، برنامههای جاوا اسکریپت خود را بهبود بخشید.
package.json چیست و چه ارتباطی با NPM دارد؟
فایل package.json
یک فایل تنظیمات است که در پروژههای جاوا اسکریپت استفاده میشود و اطلاعات مربوط به پروژه، وابستگیها، اسکریپتها و سایر تنظیمات را در خود ذخیره میکند. این فایل به عنوان یک فایل توصیفی برای پروژه عمل میکند و توسط NPM و سیستمهای مدیریت بستهها استفاده میشود.
در فایل package.json
اطلاعات زیر را میتوان پیدا کرد:
- نام پروژه: نام پروژه یا بسته را مشخص میکند.
- نسخه پروژه: شماره نسخه فعلی پروژه را نشان میدهد.
- وابستگیها: فهرستی از بستهها و کتابخانههایی که پروژه به آنها وابسته است. این وابستگیها ممکن است شامل نام بسته و نسخه مورد نیاز باشد.
- اسکریپتها: دستوراتی که میتوان با استفاده از NPM اجرا کرد. به عنوان مثال، میتوانید دستوراتی برای اجرای تستها، راهاندازی سرور توسعه و غیره در این قسمت تعریف کنید.
- اطلاعات توسعهدهندگان: شامل نام، ایمیل و سایر اطلاعات توسعهدهندگان پروژه است.
- معلومات زمان انتشار: شامل تاریخ و ساعت انتشار و اطلاعات مربوط به ناشر پروژه است.
- معلومات مربوط به مخزن: شامل آدرس مخزن پروژه (مانند GitHub) و سایر اطلاعات مربوط به مخزن است.
فایل package.json
به طور معمول در ریشه پروژه قرار دارد و با استفاده از دستور npm init
میتوان آن را ایجاد کرد. همچنین، با استفاده از دستور npm install
، وابستگیهای موجود در فایل package.json
را نصب میکنید و با استفاده از دستورات دیگری مانند npm update
و npm uninstall
میتوانید مدیریت وابستگیها را انجام دهید.
فایل package.json
بسیار مهم است زیرا به توسعهدهندگان کمک میکند تا پروژه خود را به راحتی مدیریت کنند، وابستگیها را مدیریت کنند و تنظیمات مورد نیاز را انجام دهند. در ادامه یک مثال ساده از فایل package.json
را میآورم:
{
"name": "my-project",
"version": "1.0.0",
"description": "A simple example project",
"author": "John Doe",
"license": "MIT",
"scripts": {
"start": "node index.js",
"test": "jest"
},
"dependencies": {
"express": "^4.17.1",
"lodash": "^4.17.21"
},
"devDependencies": {
"jest": "^27.0.6"
}
}
در این مثال، فایل package.json
برای یک پروژه ساده با نام “my-project” استفاده میشود. توضیحات، نویسنده و مجوز پروژه نیز مشخص شده است. برخی از کلیدها و مقادیر مهم در این فایل عبارتند از:
"name"
: نام پروژه."version"
: نسخه فعلی پروژه."description"
: توضیحی درباره پروژه."author"
: نویسنده یا توسعهدهندهی پروژه."license"
: مجوز استفاده از پروژه."scripts"
: دستورات قابل اجرا با استفاده از NPM. در این مثال، دو اسکریپت “start” و “test” تعریف شده است که به ترتیب پروژه را اجرا میکنند و تستهای واحد را اجرا میکنند."dependencies"
: وابستگیهای لازم برای اجرای پروژه. در این مثال، بستههای “express” و “lodash” به عنوان بستههای وابسته مشخص شدهاند."devDependencies"
: وابستگیهای مورد نیاز برای توسعه و تست پروژه. در این مثال، بسته “jest” به عنوان یک وابستگی توسعه مشخص شده است.
این مثال نشان میدهد که فایل package.json
به عنوان یک فایل توصیفی برای پروژه استفاده میشود و اطلاعات مربوط به نام، نسخه، وابستگیها و دستورات اجرایی را در خود ذخیره میکند. با استفاده از این اطلاعات، میتوان پروژه را به راحتی مدیریت کرده و با استفاده از NPM، بستههای مورد نیاز را نصب و اسکریپتهای تعریف شده را اجرا کرد.
دستورات مهم و کاربردی NPM
NPM (Node Package Manager) یک ابزار مدیریت بستهها برای زبان برنامهنویسی جاوا اسکریپت است که با نصب Node.js همراه میشود. این ابزار به شما اجازه میدهد بستههای مورد نیاز پروژه را مدیریت کنید، اسکریپتهای تعریف شده را اجرا کنید و امکانات دیگری را در دسترس داشته باشید. در زیر، تعدادی از دستورات مهم NPM را بررسی خواهیم کرد:
npm init
: ایجاد یک فایل package.json
جدید و راهاندازی پروژه. این دستور برای شروع یک پروژه جدید و تعیین تنظیمات اولیه مورد استفاده قرار میگیرد.
npm install
: نصب بستههای مورد نیاز پروژه. با اجرای این دستور و وارد کردن نام بستهها، NPM بستههای مورد نیاز را از مخزنهای آنلاین دانلود و نصب میکند.
npm install package-name
: نصب یک بسته خاص با نام package-name
.
npm install --save package-name
: نصب یک بسته و افزودن آن به قسمت وابستگیهای dependencies
در فایل package.json
.
npm install --save-dev package-name
: نصب یک بسته و افزودن آن به قسمت وابستگیهای devDependencies
در فایل package.json
.
npm uninstall
: حذف یک بسته نصب شده.
npm uninstall package-name
: حذف یک بسته مشخص با نام package-name
.
npm uninstall --save package-name
: حذف یک بسته و برداشتن آن از قسمت وابستگیهای dependencies
در فایل package.json
.
npm uninstall --save-dev package-name
: حذف یک بسته و برداشتن آن از قسمت وابستگیهای devDependencies
در فایل package.json
.
npm update
: بروزرسانی بستههای نصب شده به آخرین نسخههای موجود.
npm update package-name
: بروزرسانی یک بسته خاص با نام package-name
.
npm run
: اجرای اسکریپتهای تعریف شده در فایل package.json
.
npm run script-name
: اجرای یک اسکریپت با نام script-name
که در قسمت scripts
فایل package.json
تعریف شده است.
npm search
: جستجو برای بستههای موجود در مخزنهای آنلاین.
npm search package-name
: جستجو برای بستههایی که نام آنها شامل package-name
است.
npm publish
: انتشار یک بسته به مخزن آنلاین NPM. با اجرای این دستور، بستهی شما برای استفادهی عموم منتشر میشود.
این فقط بخشی از دستورات مهم NPM است و همچنین NPM از دستورات بسیار دیگری نیز پشتیبانی میکند. برای کسب اطلاعات بیشتر در مورد دستورات و عملکرد NPM، میتوانید به مستندات رسمی NPM مراجعه کنید.
آموزش نصب ماژول ها با استفاده NPM
برای نصب ماژولها با استفاده از NPM، شما میتوانید از دستور npm install
استفاده کنید. این دستور بستهها را از مخزنهای NPM دانلود و نصب میکند.
برای نصب یک بسته خاص، میتوانید از دستور زیر استفاده کنید:
npm install package-name
در اینجا package-name
با نام بستهای که میخواهید نصب کنید، جایگزین میشود. بسته مورد نظر از مخزن NPM دانلود شده و در پوشه node_modules
در پروژه شما قرار میگیرد. همچنین، اطلاعات مربوط به بسته نصب شده در فایل package.json
ذخیره میشود.
همچنین، میتوانید بستهها را به قسمت dependencies
یا devDependencies
در فایل package.json
اضافه کنید، تا بتوانید آنها را با دستور npm install
مجدداً نصب کنید. برای افزودن بسته به قسمت dependencies
، میتوانید از دستور زیر استفاده کنید:
npm install --save package-name
با استفاده از --save
، NPM بسته را در قسمت dependencies
در فایل package.json
اضافه میکند. برای افزودن بسته به قسمت devDependencies
، میتوانید از دستور زیر استفاده کنید:
npm install --save-dev package-name
با استفاده از --save-dev
، NPM بسته را در قسمت devDependencies
در فایل package.json
اضافه میکند. بستههای موجود در قسمت dependencies
برای اجرای عادی برنامه استفاده میشوند، در حالی که بستههای موجود در قسمت devDependencies
برای توسعه و تستها استفاده میشوند.
در نهایت، با اجرای دستور npm install
بدون هیچ پارامتری، NPM تمامی بستههای موجود در فایل package.json
را نصب میکند. این دستور بسیار مفید است زمانی که شما یک پروژه را از منبع دیگر دریافت کرده و میخواهید همه بستههای مورد نیاز را نصب کنید.
تفاوت NPM install و NPM ci چیست؟
دستورهای npm install
و npm ci
هر دو برای نصب بستههای پروژه با استفاده از NPM هستند، اما تفاوتهایی بین آنها وجود دارد:
npm install
: این دستور عموماً برای نصب بستهها استفاده میشود. با اجرایnpm install
، NPM تمامی بستههای مورد نیاز پروژه را نصب میکند. این دستور همچنین فایلpackage.json
را بررسی میکند و وابستگیهای موجود در قسمتهایdependencies
وdevDependencies
را نصب میکند. همچنین، اگر پوشهnode_modules
وجود داشته باشد، بستهها در آن قرار میگیرند. این دستور معمولاً در مرحله توسعه و تست پروژه استفاده میشود.npm ci
: این دستور برای نصب بستهها در محیطهای CI/CD (Continuous Integration/Continuous Deployment) استفاده میشود.ci
درnpm ci
مخفف عبارت “Continuous Integration” است. دستورnpm ci
به صورت خاص برای سرعت و قابلیت تکرارپذیری بیشتر در محیطهای CI/CD طراحی شده است. با اجرایnpm ci
، NPM به صورت خودکار فایلpackage-lock.json
را خوانده و بستهها را بر اساس وابستگیهای مشخص شده در آن نصب میکند. این دستور همچنین از پوشهnode_modules
استفاده نمیکند و بستهها را در هر بار اجرا به صورت تمیز و از ابتدا نصب میکند. این دستور معمولاً در محیطهای CI/CD برای اطمینان از توسط دقیق و قابل تکرار از بستهها استفاده میشود.
بنابراین، npm install
برای استفاده در محیطهای توسعه و تست عمومی استفاده میشود، در حالی که npm ci
برای استفاده در محیطهای CI/CD به منظور تضمین نصب دقیق و تکرارپذیر بستهها استفاده میشود.
نتیجه گیری:
NPM یا مدیر بسته Node یک ابزار اساسی در توسعه وب مدرن است که برای مدیریت بستههای جاوا اسکریپت استفاده میشود. با بیش از ۱۱ میلیون توسعهدهنده در سراسر جهان، NPM یک مخزن گسترده از پروژههای منبع باز Node.js را فراهم میکند و فرآیند ادغام وابستگیهای ضروری را ساده میکند. این ابزار به توسعهدهندگان این امکان را میدهد که وابستگیهای پروژه را تعریف کنند، نصب خودکار را انجام دهند و با استفاده از فایل package.json کنترل نسخه را حفظ کنند. اکوسیستم قدرتمند و استفاده گسترده از NPM آن را به یک ابزار ضروری برای توسعه نرمافزار کارآمد تبدیل کرده است.
این مقاله از توضیحات قابل قبولی درباره مفهوم NPM، کاربردها و نحوه استفاده از آن ارائه کرده است. به علاوه، در توضیحات بالا درباره وابستگیهای تولید و توسعه، دستورات NPM، نسخهبندی معنایی در NPM، فایل package.json و موارد دیگر بحث شده است. امیدوارم این مقاله برای خوانندگان عزیز مجله مفید باشد.