npm –save یا —save-dev
کدام یک را استفاده کنیم؟!
اگر تابهحال با NodeJS کار کرده باشید، طبیعتا یک یا چند پکیج جداگانهای را از طریق NPM و با دستور «npm install <package>» نصب کردهاید. در واقع با اجرای این دستور، NPM یا درکل NodeJS، پکیج را در دایرکتوری فعلی شما نصب خواهد کرد. به عبارتی پکیج وارد شده در داخل پوشهی node_modules موجود در مسیر فایلهای پروژهی شما نصب خواهد شد.
حالا برای ذخیرهی این پکیجهای نصب شده به عنوان وابستگی (Dependency) های پروژهی خود که در package.json ثبت میشوند، دو راه حل وجود دارد:
- –save-dev
- –save
استفاده از –save-dev
زمانی از dev استفاده میشود که بخواهیم پکیجی را برای توسعه دهنده دانلود کنیم؛ یعنی پکیج برای هدف توسعه (Dev = Development) مورد استفاده قرار میگیرد. و از این رو در زمان ارائهی محصولمان، این وابستگیهای Dev وجود نخواهند داشت و در واقع این پکیجها برای اجرای محصولی که تولید میکنیم لازم نبوده و تنها به عنوان یک ابزار برای توسعه دهنده (کسی که در حال کار روی پروژه است) در ساخت پروژه کمک میکنند! پکیج Grunt نمونهای از پکیجهای Dev میباشد.
مثال: فرض کنید قصد داریم از پکیج grunt به عنوان task runner خود استفاده کنیم و از آنجایی که این بسته برای هدف توسعه مورد استفاده قرار میگیرد، پس از دستور زیر استفاده میکنیم:
npm install grunt --save-dev
این دستور، وابستگی Grunt را در بخش devDependencies داخل package.json اضافه خواهد کرد. برای مثال:
{ "name": "Testi", "version": "1.0.0", "description": "Single page application for FuLLKade", "main": "index.html", "scripts": { .. "author": "Hadi Akbarzadeh", .. .., "devDependencies": { "gulp": "^3.8.11" } }
گرانت از یک رابط خط فرمان برای وظایف سفارشی تعریف شده در یک فایل (که به Gruntfile معروف است) استفاده میکند.
همچنین دستور زیر نیز برای نصب تمامی موارد devDependencies موجود در package.json استفاده میشود:
npm install --dev دستور بالا منسوخ شده است دستور جدید: npm install --only=dev
استفاده از –save
برخلاف dev، برای نصب پکیجی جهت استفاده در محصول به کار میرود! مواردی از جمله angularjs یا سایر ماژولهایی که در کد اپلکییشین یا پکیج ما استفاده شدهاند و برای اجرای آن ضرروری میباشند. مثال:
npm install angularjs --save
و package.json:
{ "name": "Testi", "version": "1.0.0", "description": "Single page application for FuLLKade", ..., "dependencies":{ "angularjs": "^1.4." }, "devDependencies": { "gulp": "^3.8.11" } }
همانطور که میبینید در devDependencies نصب نشده است. و در بخش dependencies اضافه شده است.
نظرات ثبت شده بدون دیدگاه