عن المشروع
`n` هو مدير إصدارات Node.js خفيف مبني على BASH مصمم للبساطة. يسمح للمستخدمين بتنزيل وتثبيت والتبديل بين إصدارات Node.js المتعددة بشكل تفاعلي أو عبر وسائط سطر الأوامر، دون الحاجة إلى قذائف فرعية أو تعديل ملفات التعريف أو واجهات برمجة معقدة.
## المنصات المدعومة
يعمل `n` على macOS وLinux (بما في ذلك Windows Subsystem for Linux) والأنظمة الأخرى الشبيهة بيونكس. لا يعمل في قذائف 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` أو حقل `engines` في `package.json`.
- **إدارة التخزين المؤقت**: يتم تخزين التنزيلات مؤقتًا لإعادة التثبيت دون اتصال؛ `n ls` يعرض الإصدارات المخزنة، `n rm` يزيل إصدارات محددة، `n prune` يمسح كل شيء باستثناء الإصدار النشط.
- **التنفيذ المباشر**: `n run <version> <script>` يشغل برنامجًا نصيًا بإصدار Node.js محدد؛ `n exec <version> <command>` يشغل أمرًا مع مسار `PATH` لذلك الإصدار؛ `n which <version>` يعرض مسار الملف الثنائي.
- **الحفاظ على npm**: استخدم `--preserve` أو `N_PRESERVE_NPM`/`N_PRESERVE_COREPACK` للاحتفاظ بإصدارات npm/corepack الحالية.
- **مرايا مخصصة**: عيّن `N_NODE_MIRROR` أو `N_NODE_DOWNLOAD_MIRROR` لمصادر تنزيل بديلة (مثل مرآة الصين أو البنيات غير الرسمية).
- **تجاوز البنية**: استخدم `--arch` أو `N_ARCH` لتحديد ملفات ثنائية معينة (مثل `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.