منصوبے کے بارے میں

`n` ایک ہلکا پھلکا، BASH پر مبنی Node.js ورژن مینیجر ہے جو سادگی کے لیے ڈیزائن کیا گیا ہے۔ یہ صارفین کو متعدد Node.js ورژن ڈاؤن لوڈ، انسٹال اور تبدیل کرنے کی اجازت دیتا ہے، چاہے انٹرایکٹو طریقے سے یا کمانڈ لائن آرگیومنٹس کے ذریعے، بغیر سب شیلز، پروفائل تبدیلیوں یا پیچیدہ APIs کی ضرورت کے۔ ## معاون پلیٹ فارمز `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` سیٹ کریں (مثلاً چین کا آئینہ یا غیر سرکاری بلڈز)۔ - **آرکیٹیکچر اوور رائڈ**: مخصوص بائنریز منتخب کرنے کے لیے `--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` استعمال نہ کیا جائے۔ یہ ٹول کم سے کم اور شفاف ہونے کے لیے ڈیزائن کیا گیا ہے، جو ان ڈویلپرز کے لیے مقبول انتخاب ہے جو سیدھے سادے ورژن مینیجر کو ترجیح دیتے ہیں۔