npm چیست و چه ارتباطی با Node.js دارد؟

npm چیست و چه ارتباطی با Node.js دارد؟

npm چیست و چه ارتباطی با Node.js دارد؟


NPM (ان پی ام) مخفف Node Package Manager و در واقع Package Manager ایست که برای Node.js نوشته شده است؛ ولی در خیلی از موارد دیگر نیز از آن استفاده می‌شود. برای دسترسی به npm باید از خط فرمان CMD در ویندوز و Terminal درلینوکس استفاده کرد

منظور از پکیج، ماژول‌ها یا کتابخانه و یا فریم‌ورک هاییست که در این‌جا به زبان JavaScript نوشته شده‌اند و البته در پلت‌فرم‌های دیگر به زبان‌های دیگر! حالا منظور از مدیریت پکیج این است که مثلا شما قصد دارید تا از جی‌کوئری، express یا socket.io که قبلا نوشته شده‌اند استفاده کنید. بدین منظور با نوشتن یک کد ساده در npm، پکیج‌هایی که می‌خواهید در پروژه استفاده کنید را از ایترنت و از مخزن npm دریافت کرده و درون پروژه‌ی خود قرار می‌دهید. و خب البته چندین دستور دیگر نیز برای مدیریت این پکیج‌ها در اختیار ما قرار گرفته است که در آینده با آن‌ها آشنا خواهیم شد.

نصب npm

نیازی نیست تا npm را به صورت جدا نصب کنید! چرا که به هنگام نصب Node.js، به صورت خودکار npm نیز به همراه آن نصب می‌شود.
بنابراین برای نصب npm، پست “آموزش نصب و راه اندازی Node.js و ساخت یک پروژه در Node.js” را مطالعه کنید.

بعد از این‌که node.js را نصب کردید، وارد CMD شده و دستور زیر را بنویسید:

npm -v

در صورتی که عملیات نصب به درستی انجام گرفته باشد، ورژن npm مثل “5.6.0” نمایش داده می‌شود.

مقداردهی اولیه

وقتی با استفاده از CMD در مسیر پروژه‌ی Node.js خود قرار دارید، اولین کاری که بهتر است انجام دهید این است که دستور زیر را قبل از هرچیزی درون CMD بنویسد:

npm init

بعد از اجرای این دستور، بایستی مشخصات پروژه‌ی خود را وارد کنید که npm در پایان، یک فایل به نام package.json را داخل پروژه‌ی شما ایجاد خواهد کرد. محتوای این فایل به فرمت json نوشته می‌شود. npm به ترتیب از شما اطلاعات زیر را می‌خواهد تا وارد کنید و سپس Enter را بزنید:

آن‌چیزهایی که مقابلشان پارانتز باز کرده و مقداری نوشته است، یعنی در صورتی که خالی رها کرده و Enter را بزنید، آن مقدار داخل پارانتز درونشان قرار خواهد گرفت.
و در نهایت بعد از این که همه‌ی اطلاعات را وارد کردید، از شما می‌خواهد که عملیات را تایید کنید.


ویژگی dependencies

این ویژگی، بعد از مقداردهی اولیه، درون package.json وجود ندارد! اما بهتر است که شما آن را به صورت دستی ایجاد کنید. در حقیقت در این ویژگی، وابستگی‌های پروژه‌ی شما قرار می‌گیرند؛ یعنی هر پکیجی که پروژه‌ی شما به آن نیاز دارد! اما چه کابردی دارد؟ در ادامه خواهیم گفت.

برای مثال:

{
  "name": "fullkade",
  "version": "1.0.0",
  "description": "FuLLKade Sample Project",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Hadi Akbarzadeh",
  "license": "ISC",
  "dependencies": {
    "socket.io": "*",
    "express": "*"
  }
}

همانطور که می‌بینید، به صورت دستی، دو وابستگی اضافه کرده و با علامت * گفته ایم که ورژن آخر آن ها را می‌خواهیم! اما هیچوقت از این علامت استفاده نکنید و همیشه ورژن را بنویسید. چرا که بعدا ممکن است آپدیت جدیدی ارائه شود و با گرفتن آن، کل پروژه خراب شود! و با مشخص کردن ورژن دقیق، شما مطمئن خواهید بود که از کدام ورژن در حال استفاده هستید. البته این برای پیشگیری است وگرنه بعید است چنین مشکلاتی پیش بیاید و یک آپدیت خراب روانه‌ی بازار شود. اما پیشگیری بهتر از باگ گیریست! 😀

نصب پکیج

NPM می‌تواند پکیج‌ها را هم به صورت Local، یعنی داخل پروژه و هم به صورت Global نصب کند که در حالت Global پکیج‌ها در جایی عمومی از سیسیتم عاملتان نصب می‌شوند تا در هنگام استفاده از آن‌ها در پروژه‌های دیگر، نیازی به دریافت دوباره‌ی آن‌ها نباشد. ولی اگر به صورت local نصب شوند، درون پروژه یک پوشه به نام node_modules ساحته خواهد شد که پکیج‌ها درون آن قرار می‌گیرند.

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

npm install

وقتی این دستور را بنوسید، مواردی که در dependencies ذکر شده اند، نصب خواهند شد. حالا کاربرد dependencies کمی مشخص‌تر شد.


دستور بالا می‌تواند شامل ورودی و تنظیماتی نیز باشد که آن‌ها را شرح می‌دهیم.
همانطور که می‌بینید، در دستور بالا، dependencies ها نصب می‌شوند؛ اما ما می‌توانیم به صورت مستقیم، نام پکیج را به صورت زیر ذکر کنیم:

npm install PACKAGE_NAME

مثال

npm install express

با این حال دیگر نیازی به این نخواهد بود که نام در dependencies قرار دارد یا خیر! بلکه این dependencies برای این است که مشخص کنیم پروژه به چه چیزهایی وابسته است تا درصورتی که آن‌ها حذف شد یا پروژه را به جای یگری انتقال دادیم، بتوانیم آن‌ها را تنها با نوشتن دستور نصب به صورت خودکار دریافت کنیم و نیازی به نوشتن نام تک تکشان نباشد و ممکن است حتی نامشان را هم به خاطر نیاوریم.

  • دستور بالا نیز آخرین ورژن پکیج وارد شده را دریافت می‌کند و می‌توانید با نوشتن یک @ بعد از نام پکیج و سپس نوشتن ورژن آن، اقدام به دریافت ورژن مورد نظر خود کنید.
  • اگر در انتهای دستور نصب، عبارت –save را نیز اضافه کنید، آن پکیج، به dependencies اضافه خواهد شد ولی اگر عبارت –no-save را اضافه کنید، به صورت موقت نصب خواهد شد.
  • اگر در انتهای دستور نصب، عبارت -g را نیز اضافه کنید، به صورت Global نصب خواهد شد و در غیر این صورت، به صورت Local نصب می‌شود.

پاسخ دهید

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

cp-codfk

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

    1. MJB_Khorasani کاربر مهمان گفت:

      سلام
      یک سوال تفاوت بین –save-dev با –save چیه؟

      11
      1. هادی اکبرزاده مدیر سایت گفت:

        زمان استفاده از دستور dev، پکیج با هدف توسعه استفاده میشه اما بدون dev پکیج برای اجرای برنامه ضروری میشه.

        1. MJB_Khorasani کاربر مهمان گفت:

          با تشکر از پاسخ دهی شما.
          لطفا در مورد ماژول هایی که به صورت devDependencies نصب می کنیم مثال بزنید.
          مثال های برنامه های ساخته شده در نود یا فریم ورک های دیگه ی نود (الکترون و …)

          تجربه خودم: در فریم ورک الکترون می توانیم ماژول الکترون را به صورت devDependencies نصب کنیم.

          حال اگر کسی ماژول دیگه ایی هم سراغ دارد لطفا بگوید.

          11
          1. هادی اکبرزاده مدیر سایت گفت:

            مطلب جدید «npm –save یا –save-dev ؟! کدام یک را استفاده کنیم؟!» رو مطالعه کنید.

    2. امیر کاربر مهمان گفت:

      من نفهمیدم چه طوری مشخص کنیم Npm برای کدوم پروژه ما نصب میشه . مثلا من میرم توی پی اچ پی استورم و شروع میکنم کدنویسی جاوااسکریپت اونجا بخوام از npm استفاده کنم چه جوری میشه؟

      11
      1. هادی اکبرزاده مدیر سایت گفت:

        برای استفاده از NPM جهت نصب پکیج و … نیازی به محیط توسعه نیست و از CMD استفاده می‌کنیم.

        1. امیر کاربر مهمان گفت:

          یعنی من یک بار نصب میکنم و در هر پروژه ایی که بخوام شروع کنم اون خودش هست؟

          11
          1. هادی اکبرزاده مدیر سایت گفت:

            اگه منظورتون خود NodeJS عه که خب شما نرم افزارشو نصب میکنین و دستوراتش به CMD اضافه میشه و تا وقتی نرم افزار رو سیستمون باشه تو هر پروژه‌ای فابل استفادس.
            ولی اگه منظورتون نصب پکیجا هستش که بستگی به نصب سراسری یا مختص فقط همون پروژه داره. اگه به صورت سراسری نصب شه بعدا که میخواین دانلود کنین اگه اون ورژن پکیج درخواستیتون تو سیستمتون وجود داشته باشه دیگه دانلود نمیشه.

    3. آرین کاربر مهمان گفت:

      سلام ممنونم از مقاله خوبتون فقط یک سوال npm فقط برای node.js بکار میره یا نه چون من در طراحی سایت هم خواستم استفاده کنم تو قسمت جاوا اسکیریپتش ولی جواب نداد باتشکرو

      10
      1. هادی اکبرزاده مدیر سایت گفت:

        سلام. NPM همونطور که گفته شد، Package Manager نود جی اسه و خارج از اون کار نمیکنه و قلق خودشو داره. منظورتونو از ینکه میگین ازش برای طراحی سایت استفاده کردینو دقیقا متوجه نمیشم؛ ولی خب میتونین از مواردی مثل تکنولوژی ReactJS که ازش برای طراحی سایت استفاده میشه و با استفاده از این ابزار و برروی NodeJS مدیریت، نگهداری و اجرا میشه، استفاده کنین.

        1. آرین کاربر مهمان گفت:

          ممنونم ازتون پس npm فقط برای node.js هست

          11
توضیحات پیشنهادی نظرات اشتراک