NPM در برابر NPX - تفاوت آن‌ها در چیست؟

ترجمه و تالیف : فاطمه شیرزادفر
تاریخ انتشار : 14 اسفند 98
خواندن در 3 دقیقه
دسته بندی ها : نود جی اس

اگرشما تا به‌حال از نود جی اس استفاده کرده‌ باشید، پس قطعاً باید با NPM هم کار کرده باشید.

(NPM (node package manager یک dependency package manager است، که هنگام نصب نود جی اس، به اصطلاح با آن می‌توانید از جعبه خارج شوید.npm راهی است برای توسعه‌دهندگان تا بتوانند هم پکیج محلی(locally) و هم پکیج همگانی(globally) را نصب و استفاده کنند.

بعضی‌اوقات ممکن است بخواهید، نگاهی به یک پکیج خاص بیندازید و بعضی از دستورات آن را امتحان کنید،اما شما بدون نصب dependency های آن در پوشه node_modules ، نمی‌توانید این کار را انجام دهید.و اینجا، جایی است که npx به میدان می‌آید!

در این مقاله،‌ما قصد داریم نگاهی به تفاوت بین npm و npx بیندازیم و یادبگیریم که چگونه از هر دوی آن‌ها بهترین نتیجه را بگیریم.

در قدم اول، اجازه دهید تا بفهمیم npm چیست و با آن چه می‌توان کرد؟

پکیج منیجر نود یا NPM

NPM  از موارد مختلفی تشکیل شده، که اولین و مهم‌ترین آن، یک repository (مخزن)‌آنلاین برای انتشار پروژه‌های اپن‌سورس نودجی‌اس است.

دومین مورد ، npm یک ابزار (CLI ( command-line-interface است، که به شما کمک می‌کند بسته‌هایی را که می‌خواهید ، نصب کنید و ورژن و dependency های آن‌را مدیریت کنید.صدها هزار کتابخانه و برنامه نودجی‌اس، در npmوجود دارد، و هر روزه، تعداد زیاد دیگری نیز به آن اضافه می‌شود.

Npm به خودی خود هیچ پکیجی را اجرا نمی‌کند، اگر می‌خواهید با استفاده از npm پکیجی را اجرا کنید، باید آن پکیج را در فایل package.json خود مشخص کنید.

مسیر پکیج‌های نصب شده توسط npm :

  • پکیج‌های محلی(locally)‌ در دایرکتوری ./node_modules/.bin/ ایجاد می‌شوند.
  • پکیج‌های همگانی(globally) در دایرکتوری bin/  ایجاد می‌شوند ـ (به طور‌مثال در لینوکس در مسیر /usr/local/bin  و در ویندوز در مسیر %AppData%/npm قرار دارند.)

برای اجرای یک پکیج با npm باید در مسیر محلی(local) آن‌را تایپ کنید، مانند این:

$ ./node_modules/.bin/your-package

یا می‌توانید با اضافه کردن بسته‌ی محلی نصب شده به package.json در بخشscript آن‌را اجرا کنید، مثل این:

{
 "name": "your-application",
  "version": "1.0.0",
  "scripts": {
    "your-package": "your-package"
  }
}

سپس می‌توانید اسکریپت را با استفاده از دستور npm run  اجرا کنید.

npm run your-package

می‌بینید که اجرای یک پکیج باnpm نیاز به مراسم کاملاً خاصی دارد!

خوشبختانه، اینجا، جایی است که npx به کارتان می‌آید.

(Npx (package runner

از نسخه 5.2.0 npx ،npm به همراه npm عرضه شد. بنابراین،‌امروزه تقریباً یک استاندارد است.

Npm همچنین یک ابزار CLI هم هست،‌که هدف آن نصب و مدیریت آسانdependency های موجود در ریجیستری npm است. و اکنون، اجرای هر نوع پکیج مبتنی بر Node.js که معمولاً با npm نصب می‌کردید، بسیار آسان‌تر شده است.

دستور زیر را اجرا کنید، تا متوجه شوید که آیا npx از قبل برای شما روی ورژن جاری npm نصب شده یا نه.

$ which npx

اگر نصب نشده بود،‌به این روش می‌توانید آن را نصب کنید:

$ npm install -g npx

حالا که مطمئن شدید آن‌را نصب کرده‌اید، بگذارید تا چند مورد از موارد استفاده npx که بسیار مفید است را شرح دهم.

به‌سادگی یک پکیج محلی نصب شده را اجرا کنید

اگر می‌خواهید یک پکیج نصب شده محلی را اجرا کنید، تمام کاری که باید انجام دهید،‌تایپ این دستور است.

$ npx your-package


npx بررسی خواهد کرد که آیا <command> یا <package> در این PATH$ یا در باینری‌های پروژه‌ی local وجود دارد یا نه، اگر وجود داشت آن را اجرا می‌کند.

پکیج‌هایی که قبلاً نصب نکرده‌ایدرا اجرا کنید!

یکی دیگر از مزیت‌های اصلی npx ،‌امکان اجرای پکیج‌هایی است که قبلاً نصب نشده‌اند.

بعضی اوقات، شما فقط می‌خواهید از برخی ابزار‌های CLI استفاده کنید، اما نمی‌خواهید آن‌ها را به صورت globally نصب کنید، تا تنها آن‌ها را آزمایش کنید.این بدان معناست که می‌توانید فضای هارد خود را ذخیره کنید و فقط در صورت نیاز آن‌ها را اجرا کنید. همچنین متغییرهای global شما نیز کم‌تر آلوده می‌شوند!

کد را مستقیماً از GitHub اجرا کنید

NPM در برابر NPX - تفاوت آن‌ها در چیست؟

این یکی خیلی جذابه!!

شما می‌توانید از npx برای اجرای هر gist یا repository گیت‌هاب استفاده کنید.

بیایید روی اجرای یک GitHub gist تمرکز کنیم، چراکه ایجاد کردن یکی از آن‌ها بسیار ساده‌ است.

ابتدایی‌ترین اسکریپت، شامل فایل  main js و package.json  است.بعد از تنظیم این فایل‌ها،تمام کاری که باید انجام دهید، این است که npx را توسط یک لینک به آن gist ،‌به همان صورت که در تصویر بالا نمایش دادیم متصل کرده و آن را اجرا کنید.

اینجا می‌‌توانید کدی که برای این مثال استفاده کرده‌ام را مشاهده کنید.

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

ورژن‌های مختلف پکیج را تست کنید!

Npx تست ورژن‌‌های مختلف پکیج و ماژول‌های node.js را بسیار آسان می‌کند. برای آزمایش این ویژگی فوق‌العاده، قصد داریم پکیج create-react-app را به صورت locally نصب کنیم و نسخه آینده آن را تست کنیم.

این دستور، dist-tag ها را برای شما در خروجی نمایش می‌دهد. Dist-tag ها ، alias (نام مستعار) را برای شماره های ورژن ها ارائه می‌دهد، که تایپ آن را بسیار ساده‌تر می‌کند.

$ npm v create-react-app

NPM در برابر NPX - تفاوت آن‌ها در چیست؟

بیایید از npx برای امتحان کردن next dist-tag، به وسیله‌ی creat-reat-app که برنامه را درون یک sandbox directory ، ایجاد می‌کند، استفاده کنیم.

$ npx create-react-app@next sandbox

 npx، ورژن بعدی creat-reat-app را نصب خواهد کرد و سپس آن‌را برای scaffold (به معنی داربست است، اما در اینجا به معنای چارچوبی است که به سرعت برای یک برنامه تنظیم می‌شود - چارچوب)، برنامه اجرا خواهد کرد، و dependency های آن را نیز نصب می‌کند.

بعد از نصب می‌توانیم به صورت زیر به برنامه برویم:

$ cd sandbox

و سپس با این دستور آن را اجرا می‌کنیم:

$ npm start

 NPM در برابر NPX - تفاوت آن‌ها در چیست؟

این به صورت خودکار اپ ری‌اکت شما را، در مرورگر پیش‌فرض سیستم شما باز خواهد کرد.

و حالا،‌ برنامه‌ای داریم که روی ورژن بعدی پکیج create-react-app  اجرا می‌شود!  صفحهindex برنامه ری‌اکت شما، باید اینگونه باشد.

NPM در برابر NPX - تفاوت آن‌ها در چیست؟

نتیجه

npx به شما کمک می‌کند تا از ورژن‌سازی ، مشکلات dependency ها و نصب پکیج‌های غیرضروری، که فقط می‌خواهیم آن‌ها را امتحان کنیم، جلوگیری کنیم.

همچنین روش واضح و آسانی برای اجرای پکیج‌ها، ماژول‌ها و حتی GitHUB gist و repository ها(مخازن) است.

پس اگر قبلاً از npx استفاده نکرده‌اید، اکنون زمان مناسبی برای شروع است!

منبع  

گردآوری و تالیف فاطمه شیرزادفر
آفلاین
user-avatar

تجربه کلمه‌ای هست که همه برای توصیف اشتباهاتشون ازش استفاده میکنن، و من همیشه دنبال اشتباهات جدیدم! برنامه‌نویس هستم و لینوکس‌ دوست

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید