Workspaces
একটি ওয়ার্কস্পেস পরিবেশের মধ্যে Volta কীভাবে ব্যবহার করবেন তার বিবরণ, যেখানে একটি একক রেপোতে একাধিক প্রজেক্ট থাকে এবং তারা সকলে Volta সেটিংস শেয়ার করতে চায়।
TIP
এই বৈশিষ্ট্যটি 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 চালান।
Hooks
যদি আপনার প্রজেক্ট প্রজেক্ট hooks ব্যবহার করে, আপনি সেগুলি একটি সাবপ্রজেক্টের .volta ডিরেক্টরিতে অথবা রুটে একটি .volta ডিরেক্টরিতে রাখতে পারেন। Volta "extends" কী দ্বারা নির্দেশিত প্রতিটি অবস্থানে hooks খুঁজবে, যাতে প্রয়োজনীয় স্তরে সেটিংস কাস্টমাইজ করা যেতে পারে।
প্রজেক্ট-লোকাল বাইনারি
প্রতিটি স্তরে hooks খোঁজা ছাড়াও, Volta 3rd-party টুল চালানোর সময় ব্যবহার করতে প্রজেক্ট-লোকাল ডিপেন্ডেন্সি সনাক্ত করতে প্রতিটি স্তরে দেখবে। এটি "extends" দ্বারা রেফারেন্স করা প্রতিটি ফাইলের সাপেক্ষে node_modules/.bin এ এটি খুঁজে পাওয়ার চেষ্টা করবে।