ওয়ার্কস্পেস
একটি ওয়ার্কস্পেস পরিবেশে Volta কীভাবে ব্যবহার করতে হয় সে সম্পর্কে বিস্তারিত, যেখানে একটি একক রেপোতে একাধিক প্রজেক্ট থাকে এবং সেগুলো সব Volta সেটিংস শেয়ার করতে চায়।
::: টিপ এই বৈশিষ্ট্যটি Volta 0.8.2-এ যোগ করা হয়েছিল, পূর্ববর্তী সংস্করণে এটি কাজ করবে না। :::
কনফিগারেশন সম্প্রসারণ করা
package.json-এর "volta" সেকশনের ভিতরে, আপনি "extends" কী সহ একটি এন্ট্রি নির্দিষ্ট করতে পারেন। সেই এন্ট্রির মান অন্য একটি JSON ফাইলের পথ হওয়া উচিত যেটির একটি "volta" সেকশনও আছে। আপেক্ষিক পথ যে ফাইলে সেগুলো সেট করা হয়েছে তার সাপেক্ষে রেজলভ করা হবে। যেকোনো Volta সেটিংস (যেমন "node" বা "yarn" সংস্করণ) "extends" দ্বারা নির্দেশিত ফাইলের সেটিংসের সাথে মার্জ করা হবে, বর্তমান ফাইলকে অগ্রাধিকার দেওয়া হবে। তাই আপনি যদি আপনার সব প্রজেক্টের জন্য একটি একক Node সংস্করণ রাখতে চান, আপনি সেই সংস্করণগুলো রুটে সেট করবেন, এবং তারপর প্রতিটি প্রজেক্টকে শুধু "extends": "../path/to/root/package.json" প্রয়োজন হবে।
উদাহরণ
নিম্নলিখিত ফোল্ডার স্ট্রাকচার এবং package.json কন্টেন্ট দেওয়া থাকলে:
.
├── package.json
└── packages
├── cli
│ └── package.json
└── utils
└── package.jsonpackage.json
{
"volta": {
"node": "12.16.1",
"yarn": "1.22.4"
}
}packages/cli/package.json
{
"volta": {
"extends": "../../package.json"
}
}packages/utils/package.json
{
"volta": {
"extends": "../../package.json"
}
}ওয়ার্কস্পেসের যেকোনো জায়গায় node চালানো আপনাকে Node 12.16.1 ব্যবহার করাবে। এবং আপনি যদি রুট package.json-এ সেই সংস্করণ আপডেট করেন, তবে এটি স্বয়ংক্রিয়ভাবে সব প্রজেক্টে ব্যবহৃত হবে, প্রতিটি সাবপ্রজেক্টে সেটিংস ডুপ্লিকেট না করে।
টুল পিনিং
যখন আপনি একটি ওয়ার্কস্পেসের ভিতরে একটি টুলের সংস্করণ নির্বাচন করতে volta pin চালান, Volta সবসময় সেই সেটিংস সবচেয়ে কাছের package.json-এ যোগ করবে যেটি এটি খুঁজে পায়। তাই, উপরের উদাহরণে, যদি আপনি packages/utils সাবপ্রজেক্টের ভিতরে volta pin node@14 চালান, Node-এর নতুন সংস্করণ packages/utils/package.json-এ লেখা হবে এবং শুধু utils সাবপ্রজেক্টের জন্য প্রযোজ্য হবে, অন্য কোনোটির জন্য নয়। এটি আপনাকে প্রতি-প্রজেক্ট ভিত্তিতে টুল সংস্করণ সহজে কাস্টমাইজ করতে দেয়।
যদি আপনি রুট কনফিগারেশনে পরিবর্তন করতে volta pin ব্যবহার করতে চান, প্রথমে ওয়ার্কস্পেস রুটে cd করুন এবং তারপর সেখান থেকে volta pin চালান।
হুক
যদি আপনার প্রজেক্ট প্রজেক্ট হুক ব্যবহার করে, আপনি সেগুলো একটি সাবপ্রজেক্টের .volta ডিরেক্টরিতে অথবা রুটের .volta ডিরেক্টরিতে রাখতে পারেন। Volta "extends" কী দ্বারা নির্দেশিত প্রতিটি অবস্থানে হুক খুঁজবে, যাতে সেটিংস যেকোনো প্রয়োজনীয় স্তরে কাস্টমাইজ করা যেতে পারে।
প্রজেক্ট-লোকাল বাইনারি
প্রতিটি স্তরে হুক খোঁজার পাশাপাশি, Volta একটি 3rd-party টুল চালানোর সময় ব্যবহার করতে প্রজেক্ট-লোকাল নির্ভরতা সনাক্ত করতে প্রতিটি স্তরে দেখবে। এটি "extends" দ্বারা রেফারেন্স করা প্রতিটি ফাইলের সাপেক্ষে node_modules/.bin-এ এটি খুঁজে পাওয়ার চেষ্টা করবে।