প্রজেক্টের মধ্যে পরিবর্তন
Volta-এর মূল সুবিধাগুলোর একটি হলো প্রজেক্ট জুড়ে ভিন্ন টুল সংস্করণের নির্বিঘ্ন পরিচালনা। এই পৃষ্ঠা ব্যাখ্যা করে কীভাবে আপনি প্রজেক্টের মধ্যে স্থানান্তরিত হওয়ার সময় Volta স্বয়ংক্রিয়ভাবে আপনার জাভাস্ক্রিপ্ট পরিবেশ পরিচালনা করে।
স্বয়ংক্রিয় সংস্করণ পরিবর্তন
অন্যান্য সংস্করণ ম্যানেজারের বিপরীতে যাদের আপনাকে ম্যানুয়ালি টুল সংস্করণের মধ্যে পরিবর্তন করতে হয়, Volta এটি স্বয়ংক্রিয়ভাবে আপনার বর্তমান ডিরেক্টরি অনুযায়ী পরিচালনা করে।
কীভাবে এটি কাজ করে
- যখন আপনি একটি জাভাস্ক্রিপ্ট কমান্ড চালান (যেমন
node,npm, বা একটি প্যাকেজ বাইনারি), Volta-এর shim কমান্ড আটকায় - 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চালান যে Volta কোন Node.js সংস্করণ ব্যবহার করছে এবং কেন