نصب محلی WebAssembly

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


این مسیر در سراسر خود به Node.js تکیه می‌کند تا محیط اجرایی برای WebAssembly فراهم کند. یعنی فرض می‌کنیم که تمام اجرای 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 نیز برای بیشتر کاربران به‌عنوان recommended مشخص شده است.
  • دستورهای موجود در صفحه‌ی وب و/یا در طول نصب را دنبال کنید و Node.js را نصب کنید.

آزمودن نصب

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

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

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

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

کمک: 'node' is not recognised

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

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

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

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

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

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

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

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

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

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

npm install

کمک: '<package>' is missing / cannot be found

اگر این را پس از ارتقای تمرین خود می‌بینید، به npm 7 خوش آمدید. برای رفع این مشکل node_modules و package-lock.json را حذف کنید و دستور را دوباره اجرا کنید.

اگر نگران فضای دیسک هستید و اشکالی ندارد ابزار دیگری نصب کنید، نگاهی به pnpm بیندازید، که تضمین می‌کند از هر نسخه از هر بسته فقط یک نسخه روی دیسک نصب شود. در این صورت، به‌جای npm install دستور pnpm install را اجرا کنید و همه‌چیز باید مطابق انتظار کار کند.

اما npm چیست و چرا این کار جواب می‌دهد؟

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

این کار جواب می‌دهد چون npm یک مدیر بسته است که همراه Node.js می‌آید و طبق مراحل بالا نصب شده است. دستور npm به دنبال فایل package.json می‌گردد که در هر پوشه‌ی تمرین وجود دارد. این فایل "dependencies" بالا را فهرست می‌کند، که سپس npm آن‌ها را دانلود و در پوشه‌ی node_modules قرار می‌دهد.

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