প্রকল্প সম্পর্কে
`n` হলো একটি হালকা ওজনের, BASH-ভিত্তিক Node.js ভার্সন ম্যানেজার যা সরলতার জন্য ডিজাইন করা হয়েছে। এটি ব্যবহারকারীদের একাধিক Node.js ভার্সন ডাউনলোড, ইনস্টল এবং পরিবর্তন করতে দেয় ইন্টারঅ্যাক্টিভভাবে বা কমান্ড-লাইন আর্গুমেন্টের মাধ্যমে, এবং এর জন্য সাবশেল, প্রোফাইল পরিবর্তন বা জটিল API প্রয়োজন হয় না।
## সমর্থিত প্ল্যাটফর্ম
`n` macOS, Linux (Windows Subsystem for Linux সহ) এবং অন্যান্য Unix-সদৃশ সিস্টেমে চলে। এটি নেটিভ Windows শেল (যেমন PowerShell), Git for Windows BASH-এ বা Cygwin DLL-এর সাথে কাজ করে না।
## ইনস্টলেশন
যদি Node.js আগে থেকেই ইনস্টল থাকে, তাহলে `n` ইনস্টল করার সবচেয়ে সহজ উপায় হলো npm ব্যবহার করা:
```bash
npm install -g n
```
ডিফল্টভাবে, `n` `/usr/local`-এ ইনস্টল হয়, যার জন্য উপযুক্ত অনুমতির প্রয়োজন হতে পারে। বিকল্পগুলির মধ্যে রয়েছে ডিরেক্টরির মালিকানা পরিবর্তন, কাস্টম `N_PREFIX` অবস্থান ব্যবহার করা, বা `sudo` দিয়ে চালানো।
npm ছাড়া বুটস্ট্র্যাপের জন্য, আপনি সরাসরি `n` ডাউনলোড করে চালাতে পারেন:
```bash
curl -fsSL https://raw.githubusercontent.com/tj/n/master/bin/n | bash -s install lts
```
macOS-এর জন্য তৃতীয়-পক্ষীয় ইনস্টলার পাওয়া যায় Homebrew (`brew install n`) এবং MacPorts (`port install n`) এর মাধ্যমে, এবং Linux/macOS-এর জন্য `n-install` এর মাধ্যমে।
## মূল বৈশিষ্ট্য
- **ইন্টারঅ্যাক্টিভ নির্বাচন**: একা `n` চালালে ডাউনলোড করা ভার্সন দেখা যায় এবং তীর চিহ্ন দিয়ে একটি নির্বাচন করা যায়।
- **ভার্সন উল্লেখ**: সম্পূর্ণ বা আংশিক ভার্সন নম্বর (যেমন `4.9.1`, `8`, `v6.1`), লেবেল যেমন `lts`, `latest`, `current`, এবং কোডনেম (`argon`, `boron`, `carbon`) সমর্থন করে।
- **স্বয়ংক্রিয় ভার্সন সনাক্তকরণ**: `.n-node-version`, `.node-version`, `.nvmrc`, বা `package.json`-এ থাকা `engines` ফিল্ড পড়ে।
- **ক্যাশ ম্যানেজমেন্ট**: ডাউনলোড অফলাইন পুনরায় ইনস্টলের জন্য ক্যাশ করা হয়; `n ls` ক্যাশ করা ভার্সন তালিকাভুক্ত করে, `n rm` নির্দিষ্ট ভার্সন মুছে দেয়, `n prune` সক্রিয়টি ছাড়া সব মুছে দেয়।
- **সরাসরি নির্বাহ**: `n run <version> <script>` একটি নির্দিষ্ট Node.js ভার্সন দিয়ে স্ক্রিপ্ট চালায়; `n exec <version> <command>` ভার্সনের `PATH` দিয়ে কমান্ড চালায়; `n which <version>` বাইনারি পাথ দেখায়।
- **npm সংরক্ষণ**: বর্তমান npm/corepack ভার্সন রাখতে `--preserve` বা `N_PRESERVE_NPM`/`N_PRESERVE_COREPACK` ব্যবহার করুন।
- **কাস্টম মিরর**: বিকল্প ডাউনলোড উৎসের জন্য `N_NODE_MIRROR` বা `N_NODE_DOWNLOAD_MIRROR` সেট করুন (যেমন China মিরর বা অস্বীকৃত বিল্ড)।
- **আর্কিটেকচার ওভাররাইড**: নির্দিষ্ট বাইনারি নির্বাচনে `--arch` বা `N_ARCH` ব্যবহার করুন (যেমন Alpine-এর জন্য `x64-musl`)।
- **পরিবেশ পরিবর্তনশীল**: `N_PREFIX` ইনস্টল অবস্থান পরিবর্তন করে; `N_CACHE_PREFIX` ক্যাশ অবস্থান পরিবর্তন করে; `NO_COLOR`/`CLICOLOR=0` ANSI রং নিয়ন্ত্রণ করে।
- **ডায়াগনস্টিকস**: `n doctor` সমস্যা সমাধানে সহায়তা করে।
## ব্যবহারের উদাহরণ
```bash
n 10.16.0 # একটি নির্দিষ্ট ভার্সন ইনস্টল করুন
n lts # সর্বশেষ LTS ইনস্টল করুন
n ls-remote lts # মিলে যাওয়া রিমোট ভার্সন তালিকাভুক্ত করুন
n ls # ক্যাশ করা ভার্সন তালিকাভুক্ত করুন
n rm 0.9.4 # একটি ক্যাশ করা ভার্সন মুছে ফেলুন
n uninstall # সক্রিয় Node.js মুছে ফেলুন (ক্যাশ রাখুন)
n run 8.11.3 --debug some.js
n exec 10 my-script --fast test
n --offline 12 # ইন্টারনেট ছাড়াই ক্যাশ করা ভার্সন ব্যবহার করুন
```
## এটি কীভাবে কাজ করে
`n` Node.js টারবল একটি ক্যাশ ফোল্ডারে (ডিফল্ট: `N_PREFIX/n/versions`) ডাউনলোড করে এবং সক্রিয় ভার্সনটিকে `bin`, `include`, `lib`, এবং `share` সাবডিরেক্টরিতে ইনস্টল করে। এটি গ্লোবাল npm প্যাকেজ পরিবর্তন করে না, যদি না `--preserve` ব্যবহার করা হয়। টুলটি ন্যূনতম এবং স্বচ্ছ হতে ডিজাইন করা হয়েছে, যা এটিকে সরল ভার্সন ম্যানেজার পছন্দকারী ডেভেলপারদের কাছে জনপ্রিয় করে তোলে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.