نصب JavaScript به‌صورت محلی

یاد بگیرید چطور JavaScript را به‌صورت محلی نصب کنید تا تمرین‌های Exercism را روی دستگاه خودتان حل کنید


این مسیر در همه‌ی بخش‌ها به Node.js تکیه می‌کند تا محیط اجرایی JavaScript را فراهم کند. یعنی فرض می‌کنیم که همه‌ی اجرای JavaScript روی رایانه‌ی شما با Node.js انجام می‌شود.

نیازمندی‌های مسیر

روی بسیاری از رایانه‌ها Node.js از پیش نصب شده است، یا ممکن است پیش‌تر نصب شده باشد یا به‌عنوان یک وابستگی نصب شده باشد. پس پیش از انجام هر کاری، باید بررسی کنیم که آیا از قبل نصب شده است یا نه:

  1. یک ترمینال باز کنید (Terminal، cmd، Powershell، bash، ...)
  2. node -v

اگر Node.js نصب باشد، یک نسخه نمایش داده می‌شود. این نسخه را یادداشت کنید. اگر Node.js نصب نباشد، خطایی نمایش داده می‌شود. معمولاً چیزی شبیه 'node' is not recognised.

Node.js

اگر Node.js از پیش نصب شده است

به وب‌سایت Node.js بروید. دو نسخه نمایش می‌دهد (اگر سیستم‌عامل شما را تشخیص دهد. در غیر این صورت، ابتدا سیستم‌عامل خود را انتخاب کنید). اگر نسخه‌ی node -v شما با یکی از این‌ها مطابقت داشته باشد، همه‌چیز مرتب است. اگر مطابقت نداشت، توصیه می‌کنیم از Node.js LTS استفاده کنید. اگر نگرانید که ارتقا چیزی روی سیستم شما را خراب کند، می‌توانید طوری ادامه دهید که انگار همه‌چیز خوب است؛ اما اگر اتفاق غیرمنتظره‌ای بیفتد، ممکن است نتوانیم پشتیبانی کنیم.

اگر Node.js نصب نشده است

چند راه برای نصب Node.js وجود دارد:

هر دو گزینه از Windows، macOS و Linux پشتیبانی می‌کنند. اگر نمی‌دانید چه کار کنید، استفاده از نصب‌کننده ساده‌ترین راه است.

  • توصیه می‌کنیم از نسخه‌ی LTS استفاده کنید. این نسخه در وب‌سایت Node.js هم برای «بیشتر کاربران» با عنوان توصیه‌شده مشخص شده است.
  • دستورالعمل‌های روی صفحه‌ی وب و/یا در طول نصب را دنبال کنید و Node.js را نصب کنید.

آزمایش نصب

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

  1. یک ترمینال باز کنید (Terminal، cmd، Powershell، bash، ...)
  2. node -v

نسخه باید با نسخه‌ی روی وب‌سایت مطابقت داشته باشد.

[!NOTE] باز کردن یک پنجره‌ی ترمینال جدید مهم است. ممکن است پنجره‌های ترمینال باز، پس از تکمیل نصب، به‌روزرسانی نشده باشند. یعنی ترمینال‌های باز نمی‌دانند که برنامه‌ی جدیدی نصب شده است.

[!IMPORTANT] > راهنما: 'node' is not recognised

اگر از نصب‌کننده‌ی رسمی استفاده کرده‌اید، PATH شما باید به‌طور خودکار پیکربندی شده باشد، اما اگر شل شما در پیدا کردن ماژول‌های نصب‌شده‌ی سراسری مشکل داشته باشد، یا اگر Node.js را از منبع بسازید، PATH خود را به‌روزرسانی کنید تا باینری‌های npm را هم در بر بگیرد.

در macOS و Linux می‌توانید این کار را با افزودن موارد زیر به ~/.bash_profile یا ~/.zshrc انجام دهید:

export PATH=/usr/local/share/npm/bin:$PATH

در Windows، منوی شروع را باز کنید و «environment variables» را جست‌وجو کنید. باید ورودی PATH را ویرایش کنید و مسیر باینری‌های npm را اینجا اضافه کنید. معمولاً این‌ها در C:\Program Files\nodejs قرار دارند. اگر با File Explorer به اینجا بروید، باید node.exe، npm.bat و npx.bat را پیدا کنید.

هر ترمینال بازی را ببندید و یکی جدید باز کنید.

فعال کردن corepack

برای استفاده از یک مدیر بسته‌ی نسخه‌دارِ سازگار با این مسیر، باید corepack را یک‌بار فعال کنید:

corepack enable pnpm

نیازمندی‌های تمرین

لطفاً برای دانلود Exercism CLI برای سیستم‌عامل خود، این دستورالعمل‌ها را دنبال کنید.

وقتی CLI راه‌اندازی و پیکربندی شد، اولین تمرین یعنی hello-world را دانلود کنید:

exercism download --exercise=hello-world --track=javascript

سپس هر تمرین برای اجرای testها به چند ابزار نیاز دارد. این ابزارها را می‌توانید با اجرای این دستور در پوشه‌ی هر تمرین نصب کنید:

corepack pnpm install

از آنجا که این مسیر به pnpm روی آورده است، نباید نگران فضای دیسک باشید. نگاهی به pnpm بیندازید؛ این ابزار تضمین می‌کند که از هر نسخه‌ی بسته فقط یک کپی روی دیسک نصب شود.

اما corepack چیست و چرا این روش کار می‌کند؟

برای تکمیل مسیر JavaScript به این اطلاعات نیازی ندارید، اما اگر مشتاقید بفهمید چه اتفاقی افتاد، پاراگراف‌های زیر برای شماست:

این کار به این دلیل جواب می‌دهد که corepack ابزاری است که همراه Node.js عرضه می‌شود و Node.js هم طبق مراحل بالا نصب شده است. این ابزار می‌تواند مدیر بسته‌ی pnpm را نصب کند. سیستم را پیکربندی می‌کند. دستور corepack به دنبال فایل package.json می‌گردد که در هر پوشه‌ی تمرین موجود است. سپس packageManager را بررسی می‌کند که با pnpm مطابقت دارد، پس می‌تواند ادامه دهد. در صورت لزوم، ابتدا pnpm را ارتقا می‌دهد. این فایل همچنین "dependencies" بالا را فهرست می‌کند که سپس توسط pnpm دانلود و در کش محلی قرار می‌گیرند.

اسکریپت‌های داخل package.json از باینری‌های کش محلی استفاده می‌کنند و همین اسکریپت‌ها هستند که برای اجرای testها به کار می‌روند، همان‌طور که در توضیحات exercise آمده است.