در این صفحه، میخواهیم بررسی کنیم که npm چیست و چه کاربردهایی دارد؟
همهی توسعهدهندگان نرمافزار، نیاز دارند که از جدیدترین و بروزترین ابزارها و فناوری روز دنیا استفاده کنند. یکی از ابزارهای مهم و ضروری در این حوزه، NPM است که مخفف عبارت “Node Package Manager” و به معنی “مدیر پکیج گره” است. با استفاده از این ابزار، توسعه دهندگان جاوا اسکریپت، قابلیت پیداکردن و نصب آسان پکیجهای کد در برنامههای شبکه و پروژههای سمت-سرور “server-side” را دارند.
هر پکیج node.js، شامل یک دایرکتوری با یک یا چند ماژول یا کتابخانهی جاوا اسکریپت است که از آن برای افزودن ویژگیهای مختلف به برنامهها یا اسکریپتها استفاده میشود. توسعهدهندگان و برنامهنویسان بدون در اختیار داشتن این پکیجها، باید برای هر فانکشنی که پروژهشان نیاز دارد، یک کد جدید را از ابتدا بنویسند.
در این مقاله، ابتدا توضیح میدهیم که npm چیست و در ادامه، به شما میگوییم که چطور یک پروژه را با آن شروع کرده و پکیجهای اضافی را نصب کنید. با ما همراه باشید.
Npm چیست؟
با اینکه واژهی Npm مخفف عبارات زیادی است، اما در اینجا، منظور ما از آن، همان “مدیر پکیج نود” است. این ابزار، یک مدیر پکیج برای پروژههای Node.js است و استفاده از آن برای عمومی در دسترس است. کاربرد npm این است که به توسعهدهندگان و برنامهنویسان کمک میکند تا از کدهای نوشته شده توسط دیگران استفاده کرده و حجم و ساعت کاری خود را کمتر کنند.
به پروژههایی که در رجیستری npm قرار دارند، “پکیج” گفته میشود. لازم به ذکر است که در رجیستری npm بیش از 1.3 میلیون پکیج وجود دارد که این پکیجها، توسط بیش از 11 میلیون توسعهدهنده در سراسر جهان مورد استفاده قرار گرفتهاند.
Node.JS چیست؟
Node.js یا نود جی اس یک ران تایم (runtime) است که به شما اجازهی اجرای کدهای جاوا اسکریپت در بکاند (backend یا همان لایهی دادهی یک اپلیکیشن) را میدهد. محیط رانتایم نیز مانند یک سیستمعامل کوچک عمل کرده و تمام فانکشنهای موردنیاز برای اجرای یک برنامه را در اختیار شما قرار میدهد. قبل از ورود Node به صحنه، کدهای جاوا اسکریپت فقط در مرورگر وب کار میکردند؛ زیرا مرورگرهای وب دارای موتوری هستند که میتواند جاوا اسکریپت را به کدی که ماشین آن را درک میکند، ترجمه کنند. بکاند فاقد این موتور است.
در اینجا بود که Node.js وارد صحنه شد و به عنوان یک موتور جاوا اسکریپت، کدها را ترجمه کرد و اجازهی اجرای این کدها بر روی یک ماشین فیزیکی را داد.
اما سوالی که شاید تا اینجا برایتان پیش آمدهباشد این است که اصلاً Node.js چه ارتباطی با دستورات NPM دارد؟ به طور کلی، npm تمام پکیجهای مورد استفادهی شما را ردیابی میکند. برای فهم بهتر ارتباط این دو، باید با نحوهی کار npm آشنا شویم…
نحوه کار npm به چه صورت است؟
به طور کلی، npm سه نقش تعیینکننده دارد که عبارتنداز:
- مخزن (Repository): npm یک مخزن پرکاربرد برای منتشرکردن پروژههای Node منبعباز است که توسعهدهندگان با استفاده از آن میتوانند کد منبع خود را با سایر کاربران npm به اشتراک بگذارند و با آنها تعامل داشتهباشند. برخی از پکیجهایی ضروری و پرکاربردی که میتوانید از یک مخزن npm دانلود کنید عبارتنداز jQuery، React و Angular.
- رابط خط فرمان (CLI): توسعهدهندگان و برنامهنویسان میتوانند برای نصب یا حذف پکیجها و مدیریت نسخهها یا وابستگیها، رابط خط فرمان npm را از یک ترمینال یا ابزار خط فرمان اجرا کنند.
- رجیستری (Registry): هر بسته یا ماژولی که از طریق رابط خط فرمان npm نصب میشود را میتوان از رجیستری عمومی npm یا همان پایگاهدادهی نرمافزار جاوا اسکریپت دانلود کرد.
Package.json چیست؟
هر پروژهی npm حاوی یک فایل Package.json است. Package.json فایلی است که در دایرکتوری ریشه قرار دارد و شامل ابر دادهی پروژهها یا بستههای npm (مانند نسخههای پکیج و مشارکتکنندهها) است. با استفاده از این فایل، عملیاتی مانند مدیریت، شناسایی و نصب پکیجها راحتتر میشود. به همین دلیل است که قبل از انتشار پروژهها در رجیستری npm، باید Package.json را قرار دهید.
در این قسمت، میخواهیم نمونهای از محتوای فایل Package.json را به شما نشان دهیم (قسمت هایلایت، شکل درست تایپ دستور در ترمینال را نشان میدهد):
Plain text Copy to clipboard Open code in new window EnlighterJS 3 Syntax Highlighter { "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "express": "^4.17.1" }, "repository": { "type": "git", "url": "https: //github.com/hostinger/example.git" }, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", } { "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "express": "^4.17.1" }, "repository": { "type": "git", "url": "https: //github.com/hostinger/example.git" }, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", } { "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "express": "^4.17.1" }, "repository": { "type": "git", "url": "https: //github.com/hostinger/example.git" }, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", }
برای اینکه package.json را بهتر درک کنید، بیایید مهمترین خطوط مثال قبلی را با یکدیگر مرور کنیم. این خطوط عبارتند از:
Plain text Copy to clipboard Open code in new window EnlighterJS 3 Syntax Highlighter "name": "hostinger-npm", "name": "hostinger-npm",
در خطوط بالا، نام پکیج مشخص میشود. تعداد این خطوط باید کمتر از 214 کاراکتر باشد و تمام کاراکترها باید فقط از حروف کوچک تشکیل شدهباشند. در صورتی که میخواهید یک ابزار را در رجیستری npm منتشر کنید، نام آن ابزار باید با پکیجهای موجود در رجیستری، متفاوت باشد.
خطوط بعدی مثال بالا را با همدیگر مرور میکنیم:
"version": "1.0.0", "version": "1.0.0",
Version در اینجا، نسخهی فعلی پروژهی شما را مشخص میکند و باید آن را طبق قوانین نسخهسازی وارد کنید.
"description": "npm guide for beginner", "description": "npm guide for beginner",
خطوط بالا، اطلاعات پکیج را در خط توضیحات قرار میدهد. اطلاعاتی که در این قسمت وارد میکنید، به کاربران کمک میکند تا پروژهی شما را در رجیستری npm پیدا کنند.
"main": "beginner-npm.js", "main": "beginner-npm.js",
فیلد main در خط بالا، نقطهی ورودی یا همان فایل اصلی پروژهی شما را مشخص میکند. در صورتی که این قسمت را خالی بگذارید، npm به صورت خودکار آن را با “index.js” پر میکند.
"scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" },
ویژگی scripts تمام دستوراتی که وظایف پروژهی شما را اجرا میکنند را نشان میدهد. کاربران npm از این فیلد برای ارسال آرگومانها به رابط خط فرمان استفاده میکنند تا نیاز به تایپ مجدد این آرگومانها را از بین ببرند.
"dependencies": { "express": "^4.16.4" }, "dependencies": { "express": "^4.16.4" },
فیلد dependencies تمام وابستگیها یا بستههای موردنیاز برای پروژه را به صورت فهرست نشان میدهد. زمانی که با استفاده از دستور npm install یک ابزار را نصب میکنید، آن پروژه به صورت خودکار در این قسمت نوشته میشود.
"repository": { "type": "git", "url": "https: //github.com/hostinger/example.git" }, "repository": { "type": "git", "url": "https: //github.com/hostinger/example.git" },
Repository حاوی آدرس URL کد منبع است. در این مثال، ما گیت هاب (GitHub) را به عنوان مکان پکیج و Git را به عنوان سیستم کنترل ورژن معرفی کردیم.
"keywords": [ "npm", "example", "basic" ], "keywords": [ "npm", "example", "basic" ],
فیلد keywords شامل مجموعهای از کلمات کلیدی است که همگی مرتبط با کاری هستند که پکیج انجام میدهد و به کاربران npm کمک میکنند تا پکیجها را راحتتر جستجو کنند. در صورتی که قصد انتشار پروژه در رجیستری npm را ندارید، این قسمت را حذف کنید.
"author": "Hostinger International", "author": "Hostinger International",
از فیلد author میتوانید برای بیان ویژگیهای سازندهی پروژه استفاده کنید.
"license": "MIT", "license": "MIT",
فیلد license نوع مجوز پروژهی npm را مشخص میکند و افراد دیگر میتوانند با توجه به نوع مجوز، متوجه شوند که میتوانند بدون محدودیت از آن پروژه استفاده کنند یا خیر.
در صورتی که میخواهید با سایر فیلدهای package.json آشنا شوید، توصیه میکنیم به مستندات رسمی package.json مراجعه کنید.
Dependencies و DevDependencies
Dependencies و devDependencies دو فیلد مهم در در package.json هستند که تمام پکیجهایی را که یک پروژه به آنها وابسته است را به صورت فهرست به کاربران نشان میدهند. فیلد Dependencies شامل تمام پکیجهای third-party است که برای کارکرد پروژه لازم دارید.
از آن طرف، devDependency را داریم که حاوی پکیجهایی است که فقط در صورتی که قصد توسعه را دارید، به آنها نیاز خواهید داشت. شما میتوانید Dependencies و devDependencies را از اجرای طریق دستورات زیر در خط فرمان، نصب کنید:
npm install npm install command with the --save --save and --save-dev --save-dev flags.
رابط خط فرمان npm (CLI)
پس از نصب npm، از رابط خط فرمان یا همان CLI برای اجرای دستورات مختلف مانند بررسی نسخهی npm، حذف و نصب پکیجها، اجرای اسکریپت پکیجها، ایجاد فایلهای package.json و بسیاری موارد دیگر استفاده میشود.
در رایانههایی که سیستمعامل ویندوز دارند، رابط خط فرمان را با نام Command Prompt میشناسند. در کامپیوترهای مک نیز این رابط با نام ترمینال (terminal) شناخته میشود.
دستورات ضروری npm
در این قسمت، به معرفی متداولترین دستورات NPM و کارهایی که انجام میدهند، خواهیم پرداخت.
npm install
از این دستور برای نصب پکیجهای npm استفاده میشود. برای نصب پکیجها نیز دو گزینهی نصب سراسری و نصب محلی را در اختیار دارید. زمانی یک پکیج را به صورت سراسری نصب میکنید، میتوانید از فانکشنهای آن پکیج در تمام دایرکتوریها در رایانهتان استفاده کنید.
در صورتی که یک پکیج را به صورت محلی نصب کنید، فقط میتوانید آن را در دایرکتوریای که در آن نصب شدهاست، استفاده کنید. در نتیجه، هیچ پوشه یا فایلی در رایانهتان نمیتواند از آن پکیج استفاده کند.
npm uninstall
از این دستور برای حذف پکیج استفاده میشود.
npm init
برای مقداردهی اولیهی یک پروژه از دستور npm init استفاده میشود. پس از اجرای این دستور، یک فایل package.json تولید میشود. زمانی که دستور npm init را اجرا میکنید، از شما خواسته میشود که اطلاعات خاصی دربارهی پروژهای که در حال تنظیم آن هستید، مانند نام پروژه، نوع مجوز، نسخه و غیره را تکمیل کنید. در صورتی که نمیخواهید این اطلاعات را وارد کنید، باید دستور npm init -y را اجرا کنید.
npm update
با استفاده از دستور npm update میتوانید یک پکیج npm را بهروزرسانی کرده و آخرین نسخهی موجود آن را در اختیار داشته باشید.
npm restart
از npm restart برای متوقفکردن و راهاندازی مجدد یک پکیج استفاده میشود.
npm start
در صورتی که لازماست کار با یک پکیج را شروع کنید، میتوانید از دستور npm start استفاده کنید.
npm stop
از این دستور برای جلوگیری از اجرای یک پکیج استفاده میشود.
npm version
دستور npm version نسخهی فعلی npmای که بر روی رایانهی شما نصب شده است را نشان میدهد.
npm publish
اگر میخواهید یک پکیج شخصی npm را در رجیستری npm منتشرکنید، میتوانید از دستور npm publish استفاده کنید.
Npm install یا npm ci؟
برای نصب پکیجهای فهرست شده در فایل package.json دو گزینه پیشرویتان دارید که یکی npm install و دیگری npm ci است. در ادامه، دربارهی این دو روش نصب توضیح میدهیم:
NPM install
از این دستور، برای نصب وابستگیهای موردنیاز استفاده میشود. با استفاده از دستور NPM install شما میتوانید پکیجها را نصب کرده و آنها را بر اساس رنج نسخهی مشخصشدهای که در فایل package.json قراردارد، بهروزرسانی کنید. معمولاً توسعهدهندگان زمانی که میخواهند مطمئن شوند که از آخرین نسخههای سازگار وابستگیها استفاده میشود، دستور NPM install را اجرا میکنند.
NPM ci
Ci مخفف عبارت “Continuous Integration” و به معنی “ادغام مداوم” است. از این دستور برای محیطهای خودکار مانند سرورهای ساخت (build servers) نظیر سرور مجازی لینوکس استفاده میشود. این دستور با نادیدهگرفتن رنج نسخهها و نصب همان نسخههایی که در فایل package-lock.json ثبت شدهاند، نصب راحت و قابل تکرار را فراهم کرده و به جلوگیری از ناهماهنگی بین محیطهای مختلف کمک میکند.
نصب npm
در صورتی که میخواهید خودتان نصب npm را انجام دهید، باید از قبل، Node.js بر روی رایانهتان نصب شده باشد. برای نصب Node.js نیز میتوانید به وبسایت آن در این لینک (+) مراجعه کرده و آن را دانلود کنید. از بین گزینههای دانلودی که در این وبسایت موجود هستند، بهترین و پایدارترین نسخه، نسخهی LTS است.
با نصب Node.js، عملیات نصب npm به صورت خودکار انجام میشود و نیازی به نصب جداگانه ندارید.
پکیجهای npm
در این بخش، ابتدا یک توضیح مختصر دربارهی پکیجهای npm را با هم میخوانیم و سپس، دربارهی نحوهی نصب و حذف پکیجهای npm به صورت سراسری و محلی و همچنین موارد پرکاربردی نظیر بهروزرسانی، لیستکردن، تغییر مکان و جستجوی پکیجهای نصبشده، صحبت میکنیم.
پکیج در npm چیست؟
پکیج، یک پروژهی از پیش ساختهشده است که قبلاً فردی آن را در دایرکتوری npm منتشر کردهاست. هر پکیج، مجموعهای از کارهای مختلف را انجام میدهد و نحوهی عملکرد آن به موارد مختلفی مانند هدف ساخت، سازنده و مشارکتکنندگان آن بستگی دارد.
با کمک دستورات NPM میتوانیم به پکیجها و پروژههای مختلفی که توسط توسعهدهندگان دیگر ساخته و منتشر شدهاند، دسترسی داشته باشیم و با استفاده از آنها، حجم کاری پروژهی خودمان را کمتر کنیم. به طور مثال، اگر میخواستید خودتان از اول یک چارچوب CSS را ایجاد کنید، باید زمان، انرژی و هزینههای زیادی صرف میکردید. در عوض، شما میتوانید از پروژههای ایجاد شده توسط توسعهدهندگان دیگر که در رجیستری NPM قرار دارند استفاده کرده و روند توسعهی خود را سریعتر کنید.
یکی از نمونههای این پکیجها، Tailwind CSS است که یک فریمورک css برای ساخت صفحات وب به شمار میرود. برخی از محبوبترین پکیجهای دیگر npm عبارتنداز Gulp، React، Chalk، Express، Vue.js و غیره.
نحوهی نصب پکیج npm به طور سراسری (Globally)
پس از نصب پکیج به صورت سراسری، میتوانید از هر دایرکتوری در رایانهتان به آن پکیج دسترسی داشته باشید. در این بخش، با اجرای دستورات NPM زیر در ترمینال، میتوانید آن را به صورت سراسری نصب کنید:
npm install -g [package name]
در قسمت package name باید نام پکیج موردنظرتان را وارد کنید. توجه داشته باشید که پرچم -g در دستور بالا، همان چیزی است که رابط کاربری npm را قادر میسازد تا پکیج را به صورت سراسری نصب کند.
به عنوان مثال، با استفاده از دستور زیر، پکیج typescript به صورت سراسری در رایانهی شما نصب میشود:
npm install -g typescript
پس از اتمام نصب، میتوانید typescript را در تمام دایرکتوریها استفاده کنید.
نحوهی نصب پکیج به صورت محلی (Locally)
نصب پکیج به صورت محلی به این معنی است که از آن پکیج، فقط میتوانید در دایرکتوری فعلی استفاده کنید. برای انجام این کار، پس از ورود به دایرکتوری موردنظر، دستور زیر را در ترمینال اجرا کنید:
npm install [package name]
به عنوان مثال، با اجرای دستور زیر، پکیج typescript به صورت محلی نصب میشود:
npm install typescript
حذف پکیج سراسری
در صورتی که دیگر به یک پکیج سراسری نیازی ندارید، میتوانید با استفاده از دستور زیر، آن را حذف کنید:
npm uninstall -g [package name]
به عنوان مثال، به اجرای دستور زیر در ترمینال، پکیج TypeScript که به صورت سراسری نصب شدهاست، از رایانهی شما حذف میشود.
npm uninstall -g typescript
حذف پکیج محلی
حذف پکیجی که به صورت محلی نصب شده است، تقریبا مشابه حذف پکیج سراسری است؛ با این تفاوت که دیگر از پرچم -g استفاده نمیکنید:
npm uninstall [package name]
بروزرسانی npm و پکیج ها
بهترین کار برای در امان ماندن از اشکالات و نقصهای امنیتی، بروزرسانی npm و پکیجهای آن است. برای بروزرسانی npm به آخرین نسخه، دستور زیر را در ترمینال اجرا کنید:
npm install npm@latest - g
دستور بالا، npm را به صورت سراسری در رایانهی شما بروز میکند.
توسعهدهندگان و سازندگان، پس از اضافهکردن ویژگیهای جدید و یا رفع باگهای قبلی یک پکیج، آن را در رجیستری npm بروز میکنند. در نتیجه، اگر از پکیجی که به تازگی بروزرسانی شدهاست، استفاده میکنید، برای اینکه بتوانید ویژگیهای جدید آن را به پکیج قبلیتان اضافه کنید، باید آن را بروزرسانی کنید. برای انجام این کار، دستورات NPM زیر را در ترمینال اجرا کنید:
npm update [package name]
به عنوان مثال، با اجرای دستور زیر، پکیج typescript به جدیدترین نسخه بروزرسانی میشود:
npm update typescript
اگر میخواهید پکیج را در سطح سراسری بروزرسانی کنید، باید پرچم -g را به کد بالا اضافه کنید:
npm update -g typescript
نحوهی تغییر مکان پکیجهای npm
کاربرانی که بر روی رایانهی خود مجوزهای مدیریتی را ندارند، ممکن است پس از اجرای دستورات NPM با یک خطا روبرو شوند. برای رفع چنین مشکلی، فقط کافیاست محل نصب پیشفرض پکیجها را به یک محل دیگر تغییر دهید. برای انجام این کار، میتوانید از دستور زیر استفاده کنید:
npm config set prefix [new directory path]
پس از مشخصکردن یک مکان جدید برای نصب پکیجها، تمام پکیجهای npm به طور پیشفرض در مکان جدید ذخیره میشوند.
فهرستبندی پکیجهای npm نصبشده در سطح سراسری
با واردکردن دستور زیر در ترمینال، تمام پکیجهای نصبشده در سطح سراسری روی دستگاه شما، به صورت یک فهرست نمایش داده میشوند:
npm list -g
در بخش بعدی، نحوهی لیستکردن پکیجهای npmای که به صورت محلی نصب شدهاند را میبینیم…
فهرستبندی پکیجهای npm نصبشده در سطح محلی
برای اینکه لیست پکیجهایی که به صورت محلی نصب شدهاند را ببینید، فقط کافی است دستور زیر را در ترمینال رایانهتان اجرا کنید:
npm list
توجه داشته باشید که دستور بالا را باید در دایرکتوری پروژهتان اجرا کنید تا بتوانید تمام پکیجهای نصبشده برای آن پروژهی خاص را مشاهده کنید.
جستجوی پکیجهای npm
در حال حاضر، بیش از 1.3 میلیون پکیج در رجیستری npm وجود دارد که هر کدام از این پکیجها، دارای فانکشنهای منحصربهفرد خود هستند و طیف وسیعی از نیازها و اهداف را دنبال میکنند. برای استفادهی برخی از این پکیجها، باید با استکهای توسعهی خاصی کار کنید. به عنوان مثال، React Router یک پکیج محبوب در React است که برای مسیریابی در React استفاده میشود.
سایر استکهای فناوری، به پکیجهای متفاوت و خاص خود نیاز دارند. برای جستجوی پکیجهای موردنیازتان، میتوانید به وبسایت npm مراجعه کرده و عملکردها، دستورالعملهای نصب و جزئیات ویژگی هر کدام را مشاهده کنید.
توصیهی ما به شما این است که از بین گزینههای موجود، آنهایی که به طور منظم و در فواصل زمانی مشخص توسط توسعهدهندگان در حال آزمایش، تعمیر و بهبود هستند را انتخاب کنید.
فایلها و فولدرهای دیگر npm
حال که با پکیجهای npm و نحوهی استفاده از آنها آشنا شدید، وقت آن رسیده که با برخی از فایلها و فولدرهایی که با پروژههای مبتنی بر npm مرتبطاند نیز آشنا شوید.
فایل package.json
فایل package.json به توسعهدهندگان کمک میکند تا پکیجهای نصبشده در یک پروژه را پیگیری کنند. در زمان ایجاد یک پروژهی جدید، کارکردن با فایل package.json اهمیت زیادی دارد. این فایل میتواند اطلاعات مربوط به یک پروژه مانند نام پروژه، نسخهی فعلی، اسکریپتها، وابستگیها و موارد دیگر را ذخیره کند.
با اجرای دستور npm init یا npm init -y و پرکردن تمام سوالاتی که سیستم در زمان ایجاد فایل از شما میپرسد، میتوانید اطلاعات این فایل را تکمیل کنید. پس از اینکه فایل package.json تولید شد، تمام پکیجهای نصبشده به همراه نام و نسخه، در فایل مربوطه ذخیره میشوند.
با کاربرد مهم دیگر فایل package.json در زمان کلون کردن پروژهها در گیت هاب آشنا میشوید. زمانی که توسعه دهندگان میخواهند پروژهشان را در یک مخزن گیتهاب push کنند، پوشهی node_modules که حاوی پکیجها و وابستگیهای آن پروژه است را کنار میگذارند. برای ایجاد پوشه پس از شبیهسازی یک مخزن، باید دستور npm install را در ترمینال پروژهتان اجرا کنید. با انجام این کار، npm میتواند از فایلهای package.json مخزن گیت هاب عبور کرده و تمام پکیجهای فهرست شده در آن جا را نصب کند.
پس از اتمام نصب، میتوانید قبل از انتقال پروژه به گیت هاب، از تمام پکیجهایی که قبلا برای آن پروژه نصب کردهاید، استفاده کنید.
Dependencies در npm چیست؟
در بخشهای قبلی، به طور مختصر دربارهی این که npm چیست و Dependencyها در npm صحبت کرده بودیم. اما در اینجا میخواهیم با این مفهوم، بیشتر آشنا شویم.
زمانی که پکیجها را نصب میکنیم، یک پوشه به نام node_modules ایجاد میشود که با استفاده از آن، میتوانیم پوشههای دیگر را ببینیم. یعنی شما با این پوشه، به پوشهها و زیرپوشههای هر پکیج دسترسی دارید. شاید تعجب کنید که چرا وقتی هنوز پوشههای دیگر را نصب نکردهاید، میتوانید آنها ببینید؟
جواب این است که در فایل package.json، پکیجها تحت وابستگیها (Dependencies) فهرست میشوند؛ زیرا شما به آن وابستگیها نیاز دارید.
پوشههای اضافیای که در node_modules ایجاد میشوند، پکیجهای اضافی دیگری هستند که پکیجهای نصبشدهی شما برای داشتن قابلیتهای بهتر، به آنها وابسته هستند. با نگاه کردن به فایل package.json یک پکیج نصبشده ، میتوانید به راحتی وابستگیهای آن پروژه را پیدا کنید.
اسکریپت npm چیست؟
اسکریپتهای npm همان اسکپریتهای سفارشیای هستند که در فایل package.json برای خودکارسازی وظایف خاص، تعریف میشوند. این خودکار سازیها میتوانند شامل کارهای مختلفی مانند راهاندازی مجدد سرور پس از تغییرات، کوچکتر کردن کد CSS، ساخت پروژه برای تولید و غیره باشد.
زمانی که یک فایل package.json را ایجاد میکنید، یک اسکریپت آزمایشی به صورت خودکار همراه با این فایل برایتان ایجاد میشود. شما میتوانید از اسکریپتها برای انجام کارهای مختلفی که کارتان را سادهتر میکند، استفاده کنید. به عنوان مثال، یکی از اسکریپتهای محبوب npm run start در React است که سرور توسعه را در localhost: 3000 میچرخاند.
با استفاده از دستور زیر، میتوانید اسکریپتهای مختلف را اجرا کنید:
npm run [script-name]
اهمیت دانش کدنویسی در npm چیست؟
شاید از خودتان پرسیدهاید که آیا پس از نصب npm، برای استفادهی بهتر از آن حتما لازم است که یک متخصص برنامهنویسی باشم؟ پاسخ صحیح به این سوال هم بله است هم خیر!
با اینکه برای استفاده از کاربرد npm نیازی نیست در حد یک استاد برنامهنویسی باشید، اما داشتن درک پایه از مفاهیم کدنویسی میتواند به شما کمک کند تا بهتر بتوانید از npm برای پیشبرد اهداف پروژهتان استفاده کنید.
در ابتدا، npm برای جاوا اسکریپت ساخته شده بود. در نتیجه، داشتن یک درک اولیه از اصول زبان برنامهنویسی به شما کمک میکند تا در انتخاب درست پکیجها و عیبیابی مشکلات، بهتر از فردی که هیچ دانشی در اینباره ندارد، عمل کنید و تصمیمهای آگاهانه تری بگیرید.
علاوهبراین، همانطور که میدانید، npm فقط به پروژههای جاوا اسکریپت محدود نیست و توسعهدهندگانی که با زبانهای دیگر برنامهنویسی کار میکنند نیز میتوانند از آن به راحتی استفاده کنند. به طور مثال، توسعهدهندگان پایتون از npm برای مدیریت وابستگیهای پروژهی خود استفاده میکنند و با کمک آن، گردش کارشان را افزایش میدهند. npm در پروژههای HTML و CSS نیز برای مدیریت کتابخانهها و ابزارهای فرانتاند استفاده میشود.
با این اوصاف، داشتن درک اولیه از مفاهیم برنامهنویسی میتواند به درک بهتر هدف و عملکرد پکیجهایی که در پروژه ادغام میشوند، کمک کند. با استفاده از این درک، شما میتوانید پایگاه کد خود را متناسب با نیازهای منحصربهفرد پروژهتان تنظیم کرده و انتخابهای بهتری داشته باشید.
جمعبندی
در این مقاله، به اینکه npm چیست و چه کاربردهایی دارد آشنا شدیم و راههای نصب و استفاده از آن را یاد گرفتیم. در طی چند سال اخیر، npm توانسته به عنوان یک ابزار ضروری برای توسعهی برنامههای کاربردی مبتنی بر Node.js تبدیل شود. این ابزار به توسعهدهندگان و برنامهنویسان کمک میکند تا به میلیونها پروژهی رایگان و منبعباز دسترسی داشتهباشند و از آنها برای پیشبرد پروژههای خود استفاده کنند.
پکیجهای مختلف و متنوعی از npm در چارچوب CSS، bundlerهای فایل، چارچوبهای جاوا اسکریپت، ابزارهای پشتیبان و موارد دیگر وجود دارد که توسعهدهندگان میتوانند بسیاری از آنها را نگهداری و حتی بروزرسانی کنند.
با کمک ابزار npm، توسعهی برنامههای وب راحتتر از گذشته شدهاست و دیگر نیازی به انجام کارهای زمانبر و تکراری نیست. تنها کاری که باید انجام دهید این است که پکیج یک توسعهدهندهی دیگر را نصب کرده تا در زمان برنامهنویسی خود صرفهجویی کنید. علاوهبراین، میتوانید خودتان پکیجهای npm را بسازید و آنها را در رجیستری npm به اشتراک بگذارید تا سایر توسعهدهندگان بتوانند از آن استفاده کنند. بدین صورت، علاوه بر مشارکت و کمک به توسعهی هر چه بیشتر این ابزار، یک رزومهی قوی برایتان ثبت میشود.