স্থানীয়ভাবে WebAssembly ইনস্টল করা

নিজের মেশিনে Exercism-এর অনুশীলনী সমাধান করতে স্থানীয়ভাবে WebAssembly ইনস্টল করা শিখুন


এই ট্র্যাকটি WebAssembly-এর জন্য একটি রানটাইম জোগাতে শুরু থেকে শেষ পর্যন্ত Node.js-এর উপর নির্ভর করে। এর মানে হলো, আপনার কম্পিউটারে 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 ওয়েবসাইট-এ যান। এটি দুটি ভার্সন দেখাবে (যদি এটি আপনার OS শনাক্ত করতে পারে। না পারলে আগে আপনার OS নির্বাচন করুন)। আপনার node -v-এর ভার্সন এগুলোর একটির সাথে মিলে গেলে ঠিক আছে। না মিললে আমরা Node.js LTS ব্যবহারের পরামর্শ দিই। আপগ্রেড করলে আপনার সিস্টেমে কিছু নষ্ট হয়ে যেতে পারে বলে চিন্তা থাকলে আপনি সব ঠিক আছে ধরে এগিয়ে যেতে পারেন; তবে অপ্রত্যাশিত কিছু ঘটলে আমরা হয়তো সাপোর্ট দিতে পারব না।

Node.js ইনস্টল করা না থাকলে

Node.js ইনস্টল করার কয়েকটি উপায় আছে:

দুটি উপায়ই Windows, macOS আর Linux-এ চলে। কী করবেন বুঝতে না পারলে ইনস্টলার ব্যবহার করাই সবচেয়ে সহজ।

  • আমরা LTS ভার্সন ব্যবহারের পরামর্শ দিই। Node.js ওয়েবসাইটেও এটি "for most users" হিসেবে recommended বলে চিহ্নিত করা থাকে।
  • ওয়েবপেজে এবং/অথবা ইনস্টলারের সময় দেওয়া নির্দেশনা অনুসরণ করে Node.js ইনস্টল করুন।

ইনস্টলেশন পরীক্ষা করা

ইনস্টলার শেষ হওয়ার পর, বা প্যাকেজ ম্যানেজারের কাজ শেষ হলে, বা বাইনারি কপি করে নির্দেশনা অনুসরণ করা হয়ে গেলে, সব ঠিক আছে কি না পরীক্ষা করে দেখা ভালো।

  1. একটি টার্মিনাল খুলুন (Terminal, cmd, Powershell, bash, ...)
  2. node -v রান করুন

ভার্সনটি ওয়েবসাইটে দেখানো ভার্সনের সাথে মিলে যাওয়া উচিত।

নোট: একটি নতুন টার্মিনাল উইন্ডো খোলা জরুরি। ইনস্টলেশন শেষ হওয়ার পর খোলা থাকা টার্মিনাল উইন্ডোগুলো হয়তো রিফ্রেশ হয়নি। এর মানে হলো, খোলা টার্মিনালগুলো জানে না যে একটি নতুন প্রোগ্রাম ইনস্টল হয়েছে।

সাহায্য: 'node' is not recognised

অফিসিয়াল ইনস্টলার ব্যবহার করে থাকলে আপনার PATH স্বয়ংক্রিয়ভাবে কনফিগার হয়ে যাওয়ার কথা। কিন্তু আপনার শেল যদি গ্লোবালি ইনস্টল করা মডিউলগুলো খুঁজে পেতে সমস্যা করে, অথবা আপনি যদি সোর্স থেকে Node.js বিল্ড করেন, তাহলে npm বাইনারিগুলো অন্তর্ভুক্ত করতে আপনার PATH হালনাগাদ করুন।

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 দেখতে পাওয়ার কথা।

খোলা থাকা সব টার্মিনাল বন্ধ করে একটি নতুন টার্মিনাল খুলুন।

অনুশীলনীর প্রয়োজনীয়তা

আপনার OS-এর জন্য Exercism CLI ডাউনলোড করতে এই নির্দেশনাগুলো অনুসরণ করুন।

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 বর্ণনায় বলা আছে।