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

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


এই ট্র্যাকটি JavaScript-এর জন্য রানটাইম হিসেবে সর্বত্র 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 ওয়েবসাইটেও এটিকে "বেশিরভাগ ব্যবহারকারীর জন্য" recommended হিসেবে দেখানো হয়।
  • ওয়েবপেজের এবং/অথবা ইনস্টলারের নির্দেশনা অনুসরণ করে Node.js ইনস্টল করুন।

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

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

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

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

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

[!IMPORTANT] > সাহায্য: '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 পাবেন।

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

corepack চালু করা

এই ট্র্যাকের সাথে সামঞ্জস্যপূর্ণ একটি ভার্সনযুক্ত প্যাকেজ ম্যানেজার ব্যবহার করতে, একবার corepack চালু করতে হবে:

corepack enable pnpm

অ্যাসাইনমেন্টের প্রয়োজনীয়তা

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

CLI সেটআপ ও কনফিগার হয়ে গেলে, প্রথম অনুশীলনীটি ডাউনলোড করুন - hello-world:

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

এরপর প্রতিটি অ্যাসাইনমেন্টের টেস্ট চালানোর জন্য কিছু টুল দরকার। প্রতিটি অ্যাসাইনমেন্ট ডিরেক্টরির ভেতরে এই কমান্ডটি চালিয়ে সেগুলো ইনস্টল করা যায়:

corepack pnpm install

যেহেতু এই ট্র্যাকটি pnpm-এ চলে গেছে, ডিস্ক স্পেস নিয়ে আপনার চিন্তা করার দরকার নেই। pnpm দেখে নিন, যা নিশ্চিত করে যে ডিস্কে প্রতিটি প্যাকেজ-ভার্সনের কেবল একটি কপিই ইনস্টল হয়।

কিন্তু corepack কী আর এটা কাজ করে কেন?

JavaScript ট্র্যাক শেষ করতে এই তথ্য আপনার দরকার নেই, কিন্তু এইমাত্র কী হলো সেটা জানতে আগ্রহী হলে, নিচের অনুচ্ছেদগুলো আপনার জন্য:

এটি কাজ করে কারণ corepack হলো Node.js-এর সাথে বান্ডল হয়ে আসা একটি টুল, যা উপরের ধাপগুলো অনুসরণ করে ইনস্টল করা হয়েছে। এটি প্যাকেজ ম্যানেজার pnpm ইনস্টল করতে পারে। এটি সিস্টেম কনফিগার করে। corepack কমান্ডটি একটি package.json ফাইল খোঁজে, যা প্রতিটি অ্যাসাইনমেন্ট ফোল্ডারে থাকে। এরপর এটি packageManager চেক করে যা pnpm-এর সাথে মেলে, তাই এটি এগিয়ে যেতে পারে। প্রয়োজন হলে এটি প্রথমে pnpm আপগ্রেড করবে। এই ফাইলটিতে উপরের "dependencies"-ও তালিকাভুক্ত থাকে, যা এরপর pnpm ডাউনলোড করে একটি লোকাল ক্যাশে রাখে।

package.json-এর স্ক্রিপ্টগুলো লোকাল ক্যাশের বাইনারিগুলো ব্যবহার করে, আর এই স্ক্রিপ্টগুলোই টেস্ট চালাতে ব্যবহৃত হয়, যেমনটি exercise বর্ণনায় তালিকাভুক্ত আছে।