پکیج npm را بصورت dependency نصب کنیم یا devDependency؟

پکیج npm را بصورت dependency نصب کنیم یا devDependency؟

در قسمت قبل پکیج‌ها را از نظر محدوده نصب بررسی کردیم، اما از نظر زمانی که این پکیج‌های نیازمندی مورد استفاده قرار می‌گیرند و این که حضور یک پکیجِ نیازمندی در کدام بخش از پروژه الزامیست، پنج حالت داریم:

· dependency

· devDependency

· optionalDependency

· peerDependency

· bundledDependency

 

از آنجا که دو نوع نیازمندی اصلی که معمولاً با آن‌ها سر و کار داریم، انواع dependency و devDependency هستند، در مقاله پیش رو به شرح این دو نوع نیازمندی می پردازیم و سه مورد دیگر را، در مباحث پیشرفته تر بررسی خواهیم کرد.

 

1. dependency: این که پکیج بعنوان dependency نصب شود، یعنی نیازمندی معمولی پروژه (وقتی پکیجی را در حالت معمولی نصب می‌کنیم، یعنی دستور npm install --save را برای آن اجرا می‌کنیم، پکیج بعنوان dependency نصب می‌شود). این نوع نیازمندی‌ها در محصول نهایی(production mode) مورد نیاز هستند و باید حضور داشته باشند. یا به عبارت دیگر پروژه در runtime به آن‌ها نیاز دارد. بعنوان مثال اگر پروژه‌مان از پکیج‌هایی چون react، redux، express، axios و ... استفاده می‌کند، باید آن‌ها را بصورت dependency نصب کرد.

2. devDependency: این که پکیج بعنوان devDependancy نصب شود، یعنی بعنوان نیازمندی زمان توسعه (پکیج را با اجرای دستور npm install --save-dev نصب کنیم). این نوع نیازمندی‌ها صرفاً در زمان دولوپ کاربرد دارند. مثلاً ابزارهای تست، transpiler ها و ... از جمله پکیج‌هایی هستند که در زمان توسعه مورد نیازند، ولی موقع استفاده کاربر نهایی پکیج کاربردی ندارند. از این رو موارد این چنینی در قسمت devDependencies نصب می‌شوند. بصورت پیش‌فرض وقتی دستور npm install را در دایرکتوری اصلی پروژه‌ای می‌زنیم، نیازمندی‌های زمان توسعه نصب می‌شوند، ولی اگر گزینه p- را نیز در کنار آن استفاده کنیم (npm install -p) دیگر devDependencies نصب نخواهند شد. بعنوان مثال اگر بخواهیم در پروژه‌مان از پکیج‌هایی چون nodemon، babel، ESLint، Mocha، Enzyme و ... استفاده کنیم، بهتر است آن‌ها را بصورت devDependency نصب کنیم.

اگر در مورد انواع مختلف نیازمندی ها در npm سؤالی داشتید، یا نظری دارید که باعث پیشرفت مقالات سکان آکادمی‌خواهد شد، حتماً آن ها را در قسمت نظرات با ما در میان بگذارید. علاوه بر این در قسمت تالار گفتگو، کارشناسان و همراهان سکان آکادمی می توانند پاسخگوی پرسش های شما باشند.

در قسمت بعدی از سری مقالات آموزش npm، به مبحث نسخه بندی در npm می پردازیم و یاد می گیریم که علامت های مختلفی که در تعیین شماره نسخه پکیج ها به کار می روند چه معنایی دارند.

1-1
NPM چیست و چه کاری انجام می دهد؟
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۶/۳۰
1-2
دستور npm init و ایجاد یک پروژه بر اساس npm
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۶/۳۱
1-3
وقتی یک پکیج npm را در پروژه نصب می کنیم، چه اتفاقی می افتد؟
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۰۱
1-4
تفاوت نصب یک پکیج بصورت local و global
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۰۲
1-5
پکیج npm را بصورت dependency نصب کنیم یا devDependency؟
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۰۵
1-6
نسخه بندی در npm
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۰۶
1-7
فایل package-lock.json چیست و چه کاری انجام می دهد؟
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۰۷
1-8
npm نیازمندی های تکراری در پروژه را چگونه مدیریت میکند؟
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۰۸
1-9
با مراجعه به صفحه اصلی یک پکیج در سایت npm چه اطلاعاتی بدست می آوریم؟
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۱۲
1-10
publish کردن پکیج در npm
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۱۵
1-11
کار با اسکریپت های npm
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۱۷
1-12
نکات تکمیلی درباره npm scripting
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۱۹
1-13
دستور npx چه کاری انجام می دهد؟
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۲۱
1-14
دستور npm audit چه کاربردی دارد؟
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۲۸
1-15
برخی دستورات کاربردی در npm
تیم تولید محتوای سکان آکادمی
۱۳۹۹/۰۷/۲۹
rocket
نظرات
اگر login نکردی برامون ایمیلت رو بنویس: