تبلیغات

npm –save یا –save-dev ؟! کدام یک را استفاده کنیم؟!

npm –save یا save-dev
کدام یک را استفاده کنیم؟!


اگر تابه‌حال با NodeJS کار کرده باشید، طبیعتا یک یا چند پکیج جداگانه‌ای را از طریق NPM و با دستور «npm install <package>» نصب کرده‌اید. در واقع با اجرای این دستور، NPM یا درکل NodeJS، پکیج را در دایرکتوری فعلی شما نصب خواهد کرد. به عبارتی پکیج وارد شده در داخل پوشه‌ی node_modules موجود در مسیر فایل‌های پروژه‌ی شما نصب خواهد شد.

حالا برای ذخیره‌ی این پکیج‌های نصب شده به عنوان وابستگی (Dependency) های پروژه‌ی خود که در package.json ثبت می‌شوند، دو راه حل وجود دارد:

  • –save-dev
  • –save
package.json
هر بسته یا پکیج NPM ای از جمله پروژه‌ی فعلی شما، دارای یک فایل به نام package.json می‌باشد؛ که شامل متادیتا یا اطلاعات مختلف مربوط به پروژه است. در واقع این فایل برای دادن اطلاعات به NPM استفاده می‌شود تا بتواند پروژه را شناسایی کرده و وابستگی (Dependency یا پکیج‌های دیگری که از آن در این پکیج استفاده شده است) های آن‌را مدیریت کند. این فایل همچنین می‌تواند شامل اطلاعات دیگری از جمله شرح پروژه، نسخه پروژه، لایسنس و … نیز باشد.

استفاده از –save-dev

زمانی از dev استفاده می‌شود که بخواهیم پکیجی را برای توسعه دهنده دانلود کنیم؛ یعنی پکیج برای هدف توسعه (Dev = Development) مورد استفاده قرار می‌گیرد. و از این رو در زمان ارائه‌ی محصولمان، این وابستگی‌های Dev وجود نخواهند داشت و در واقع این پکیج‌ها برای اجرای محصولی که تولید می‌کنیم لازم نبوده و تنها به عنوان یک ابزار برای توسعه دهنده  (کسی که در حال کار روی پروژه است) در ساخت پروژه کمک می‌کنند! پکیج Grunt نمونه‌ای از پکیج‌های Dev می‌باشد.

مثال: فرض کنید قصد داریم از پکیج grunt به عنوان task runner خود استفاده کنیم و از آنجایی که این بسته برای هدف توسعه مورد استفاده قرار می‌‌گیرد، پس از دستور زیر استفاده می‌کنیم:

این دستور، وابستگی Grunt را در بخش devDependencies  داخل package.json اضافه خواهد کرد. برای مثال:

 

Grunt
Grunt یک Task Runner جاوا اسکریپت است. در واقع یک ابزار برای انجام خودکار وظایف مکرر ی مانند minification (فشرده کردن فایل JS)، گردآوری، تست واحد، تجزیه و تحلیل (Linting) و …!
گرانت از یک رابط خط فرمان برای وظایف سفارشی تعریف شده در یک فایل (که به Gruntfile معروف است) استفاده می‌کند.

همچنین دستور زیر نیز برای نصب تمامی موارد devDependencies موجود در package.json استفاده می‌شود:

استفاده از –save

برخلاف dev، برای نصب پکیجی جهت استفاده در محصول به کار می‌رود! مواردی از جمله angularjs یا سایر ماژول‌هایی که در کد اپلکییشین یا پکیج ما استفاده شده‌اند و برای اجرای آن ضرروری می‌باشند. مثال:

و package.json:

همانطور که می‌بینید در devDependencies نصب نشده است. و در بخش dependencies اضافه شده است.

تبلیغات
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک‌گذاری اطلاعات در هر زمینه‌ای
برنامه‌نویس فول استک

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه