Skip to content

Node.js ভার্সন ম্যানেজমেন্ট

fnm শক্তিশালী ভার্সন ম্যানেজমেন্ট ফিচার প্রদান করে, যা আপনাকে একাধিক Node.js ভার্সনের মধ্যে সহজে সুইচ করতে দেয়।

মৌলিক অপারেশন

ইনস্টলকৃত ভার্সন দেখুন

bash
fnm list

আউটপুট উদাহরণ:

* v20.10.0 default
  v18.19.0
  v16.20.2
  • * বর্তমানে ব্যবহৃত ভার্সন নির্দেশ করে
  • default ডিফল্ট ভার্সন নির্দেশ করে

বর্তমান ভার্সন দেখুন

bash
fnm current

ভার্সন পরিবর্তন করুন

bash
# নির্দিষ্ট ভার্সনে পরিবর্তন করুন
fnm use 20

# নির্দিষ্ট ভার্সনে পরিবর্তন করুন
fnm use 20.10.0

# যদি ভার্সন ইনস্টল না থাকে, অটো ইনস্টল করে সুইচ করুন
fnm use 18 --install-if-missing

ডিফল্ট ভার্সন

ডিফল্ট ভার্সন সেট করুন

bash
fnm default 20

ডিফল্ট ভার্সন হলো:

  • নতুন টার্মিনাল সেশন শুরু হলে ব্যবহৃত ভার্সন
  • কোনো ভার্সন ফাইল না থাকলে ব্যবহৃত ভার্সন

ডিফল্ট ভার্সন দেখুন

bash
fnm default

ভার্সন অ্যালিয়াস

অ্যালিয়াস আপনাকে ভার্সনের জন্য মনে রাখা সহজ নাম সেট করতে দেয়।

অ্যালিয়াস তৈরি করুন

bash
# ভার্সনের জন্য অ্যালিয়াস সেট করুন
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 old

অ্যালিয়াস ব্যবহার করুন

bash
# অ্যালিয়াস দ্বারা ভার্সন পরিবর্তন করুন
fnm use default
fnm use legacy

অ্যালিয়াস মুছুন

bash
fnm unalias legacy

অটোমেটিক ভার্সন সুইচিং

fnm প্রজেক্ট ডিরেক্টরি এর ভিত্তিতে Node.js ভার্সন অটোমেটিক্যালি সুইচ করতে পারে।

অটোমেটিক সুইচিং সক্রিয় করুন

শেল কনফিগারেশনে --use-on-cd যোগ করুন:

bash
eval "$(fnm env --use-on-cd)"

ভার্সন ফাইল তৈরি করুন

প্রজেক্ট রুটে .node-version বা .nvmrc ফাইল তৈরি করুন:

bash
# .node-version ব্যবহার করে (সুপারিশকৃত)
echo "20" > .node-version

# অথবা .nvmrc ব্যবহার করে (nvm এর সাথে সামঞ্জস্যপূর্ণ)
echo "v18.17.0" > .nvmrc

ভার্সন ফাইল ফরম্যাট

.node-version নিম্নলিখিত ফরম্যাট সমর্থন করে:

20           # মেজর ভার্সন, সর্বশেষ 20.x.x ব্যবহার করবে
20.10        # মাইনর ভার্সন, সর্বশেষ 20.10.x ব্যবহার করবে
20.10.0      # নির্দিষ্ট ভার্সন
lts/iron     # LTS ভার্সন নাম

ভার্সন ফাইল পার্সিং কৌশল

fnm দুটি ভার্সন ফাইল পার্সিং কৌশল সমর্থন করে:

bash
# local (ডিফল্ট) - শুধুমাত্র বর্তমান ডিরেক্টরিতে খুঁজে
fnm env --version-file-strategy=local

# recursive - প্যারেন্ট ডিরেক্টরিগুলোতে রিকার্সিভলি খুঁজে
fnm env --version-file-strategy=recursive

package.json engines সমর্থন

fnm package.json এর engines.node ফিল্ড পড়তে পারে:

json
{
  "engines": {
    "node": ">=18.0.0"
  }
}

ডিফল্টভাবে সক্রিয়, পরিবেশ ভেরিয়েবল দ্বারা নিষ্ক্রিয় করা যায়:

bash
export FNM_RESOLVE_ENGINES=false

ভার্সন ম্যানেজমেন্ট সেরা পদ্ধতি

1. প্রজেক্ট-লেভেল ভার্সন লকিং

প্রতিটি প্রজেক্টে .node-version ফাইল তৈরি করুন:

bash
cd my-project
echo "20" > .node-version
fnm install
fnm use

2. টিম কোলাবোরেশন

.node-version Git এ যোগ করুন:

bash
git add .node-version
git commit -m "chore: add .node-version"

3. CI/CD কনফিগারেশন

CI/CD পরিবেশে fnm ব্যবহার করুন:

yaml
# GitHub Actions
- name: Install fnm
  run: curl -fsSL https://fnm.vercel.app/install | bash

- name: Install Node.js
  run: fnm install && fnm use

4. মাল্টি-ভার্সন ডেভেলপমেন্ট

bash
# একাধিক ভার্সন ইনস্টল করুন
fnm install 20
fnm install 18
fnm install 16

# সহজে সুইচ করার জন্য অ্যালিয়াস সেট করুন
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old

# বিভিন্ন প্রজেক্টে বিভিন্ন ভার্সন ব্যবহার করুন
cd project-new && fnm use current
cd project-old && fnm use legacy

ভার্সন আনইনস্টল করুন

bash
# নির্দিষ্ট ভার্সন আনইনস্টল করুন
fnm uninstall 16.20.2

# অ্যালিয়াস দ্বারা আনইনস্টল করুন (ভার্সন এবং সকল সম্পর্কিত অ্যালিয়াস মুছে ফেলবে)
fnm uninstall old

সাধারণ সমস্যা

ভার্সন সুইচ করার পরে node কমান্ড আপডেট হচ্ছে না

নিশ্চিত হোন শেল কনফিগারেশন সঠিক আছে:

bash
# node পাথ পরীক্ষা করুন
which node

# fnm ডিরেক্টরি নির্দেশ করা উচিত
# ~/.fnm/node-versions/.../bin/node

অটোমেটিক সুইচিং কাজ করছে না

  1. নিশ্চিত হোন --use-on-cd শেল কনফিগারেশনে যোগ করা হয়েছে
  2. নিশ্চিত হোন ভার্সন ফাইল বিদ্যমান আছে
  3. শেল কনফিগারেশন পুনরায় লোড করুন

ভার্সন ফাইল অগ্রাধিকার

fnm নিম্নলিখিত ক্রমে ভার্সন খুঁজে:

  1. কমান্ড লাইনে নির্দিষ্ট করা ভার্সন
  2. .node-version ফাইল
  3. .nvmrc ফাইল
  4. package.json engines.node
  5. ডিফল্ট ভার্সন

সম্পর্কিত লিংক