প্রজেক্টগুলির মধ্যে সুইচিং
Volta এর মূল সুবিধাগুলির মধ্যে একটি হলো প্রজেক্ট জুড়ে বিভিন্ন টুল ভার্সনের এর নির্বিঘ্ন পরিচালনা। এই পৃষ্ঠা ব্যাখ্যা করে কীভাবে আপনি প্রজেক্টগুলির মধ্যে সরানোর সময় Volta স্বয়ংক্রিয়ভাবে আপনার JavaScript পরিবেশ পরিচালনা করে।
স্বয়ংক্রিয় ভার্সন সুইচিং
অন্যান্য ভার্সন ম্যানেজারগুলির থেকে ভিন্ন, যেগুলি আপনাকে ম্যানুয়ালি টুল ভার্সনগুলির মধ্যে সুইচ করতে বলে, Volta এটি স্বয়ংক্রিয়ভাবে আপনার বর্তমান ডিরেক্টরি এর উপর ভিত্তি করে পরিচালনা করে।
এটি কীভাবে কাজ করে
- যখন আপনি একটি JavaScript কমান্ড চালান (যেমন
node,npm, বা একটি প্যাকেজ বাইনারি), Volta এর শিম কমান্ডটি ইন্টারসেপ্ট করে - Volta আপনার বর্তমান ডিরেক্টরি পরীক্ষা করে দেখতে আপনি পিন করা টুল ভার্সন সহ একটি প্রজেক্টে আছেন কিনা
- যদি থাকেন, Volta সেই প্রজেক্টের
package.jsonথেকে পিন করা ভার্সন ব্যবহার করে - যদি আপনি পিন করা ভার্সন সহ একটি প্রজেক্টে না থাকেন, Volta আপনার ডিফল্ট টুলস ব্যবহার করে
এর সবকিছু স্বচ্ছভাবে ঘটে কোনো অতিরিক্ত কমান্ড ছাড়াই।
উদাহরণ কর্মপ্রবাহ
কল্পনা করুন আপনার দুটি প্রজেক্ট রয়েছে বিভিন্ন Node.js প্রয়োজনীয়তা সহ:
প্রজেক্ট A (~/projects/project-a/package.json):
{
"volta": {
"node": "14.19.1",
"npm": "6.14.16"
}
}প্রজেক্ট B (~/projects/project-b/package.json):
{
"volta": {
"node": "16.14.2",
"npm": "8.5.0"
}
}আপনার কর্মপ্রবাহ এইরকম দেখাতে পারে:
# প্রজেক্ট A এ
cd ~/projects/project-a
node --version # v14.19.1 দেখায়
npm --version # v6.14.16 দেখায়
# প্রজেক্ট B এ সুইচ করুন
cd ~/projects/project-b
node --version # স্বয়ংক্রিয়ভাবে v16.14.2 দেখায়
npm --version # স্বয়ংক্রিয়ভাবে v8.5.0 দেখায়
# কোনো প্রজেক্টের বাইরে
cd ~
node --version # আপনার ডিফল্ট Node ভার্সন দেখায়নেস্টেড প্রজেক্ট
যদি আপনার নেস্টেড প্রজেক্ট থাকে, Volta নিকটতম package.json থেকে টুল ভার্সন ব্যবহার করবে যেখানে একটি volta সেকশন রয়েছে।
উদাহরণস্বরূপ:
/parent-project/package.json (node@14 সহ volta সেকশন রয়েছে)
/parent-project/child-project/package.json (node@16 সহ volta সেকশন রয়েছে)
/parent-project/other-directory/ (কোনো package.json নেই)যদি আপনি চালান:
/parent-project/child-project/এ - Volta Node.js 16 ব্যবহার করে/parent-project/other-directory/এ - Volta Node.js 14 ব্যবহার করে/parent-project/এ - Volta Node.js 14 ব্যবহার করে
প্যাকেজ বাইনারি
Volta এর স্বয়ংক্রিয় সুইচিং প্যাকেজ বাইনারিগুলিতেও প্রযোজ্য। উদাহরণস্বরূপ, যদি আপনার TypeScript এর একটি প্রজেক্ট-নির্দিষ্ট ভার্সন থাকে এবং আপনি tsc চালান, Volta নিশ্চিত করে যে সঠিক ভার্সন ব্যবহৃত হচ্ছে।
গ্লোবাল বনাম লোকাল প্যাকেজ
যখন আপনি একটি প্যাকেজ বাইনারি চালান:
- যদি বাইনারি আপনার প্রজেক্টের
node_modules/.bin/এ থাকে, Volta সেই ভার্সন ব্যবহার করে - যদি না থাকে, কিন্তু প্যাকেজ Volta দিয়ে গ্লোবালি ইনস্টল করা থাকে, এটি সেই ভার্সন ব্যবহার করে
- অন্যথায়, এটি একটি ত্রুটি দেখায় যে কমান্ড পাওয়া যায়নি
সমস্যা সমাধান
যদি আপনি ভার্সন সুইচিং এর সাথে সমস্যা অনুভব করেন:
- যাচাই করুন যে আপনার প্রজেক্টের
package.jsonএ একটিvoltaসেকশন রয়েছে - আপনার ইনস্টল করা টুলস পরীক্ষা করতে
volta list allচালান - যাচাই করুন যে আপনি যাদের প্রয়োজন সেই টুলস অথবা আপনার প্রজেক্টে পিন করা বা ডিফল্ট ভার্সন হিসেবে ইনস্টল করা
- দেখতে
volta which nodeচালান কোন Node.js ভার্সন Volta ব্যবহার করছে এবং কেন