إدارة إصدارات Node.js
يوفر fnm ميزات قوية لإدارة الإصدارات، مما يتيح لك التبديل بسهولة بين إصدارات Node.js المتعددة.
العمليات الأساسية
عرض الإصدارات المثبتة
bash
fnm listمثال المخرجات:
* v20.10.0 default
v18.19.0
v16.20.2*يشير إلى الإصدار المستخدم حالياًdefaultيشير إلى الإصدار الافتراضي
عرض الإصدار الحالي
bash
fnm currentتبديل الإصدار
bash
# Switch to specific version
fnm use 20
# Switch to specific exact version
fnm use 20.10.0
# If version is not installed, auto install then switch
fnm use 18 --install-if-missingالإصدار الافتراضي
تعيين الإصدار الافتراضي
bash
fnm default 20الإصدار الافتراضي هو:
- الإصدار المستخدم عند بدء جلسة طرفية جديدة
- الإصدار المستخدم عند عدم وجود ملف إصدار
عرض الإصدار الافتراضي
bash
fnm defaultالأسماء المستعارة للإصدارات
تتيح لك الأسماء المستعارة تعيين أسماء سهلة الحفظ للإصدارات.
إنشاء اسم مستعار
bash
# Set alias for version
fnm alias 20 default
fnm alias 18 legacy
fnm alias 16 oldاستخدام الاسم المستعار
bash
# Switch version via alias
fnm use default
fnm use legacyحذف الاسم المستعار
bash
fnm unalias legacyالتبديل التلقائي للإصدار
يمكن لـ fnm التبديل التلقائي لإصدارات Node.js بناءً على دليل المشروع.
تمكين التبديل التلقائي
أضف --use-on-cd إلى تكوين الصدفة:
bash
eval "$(fnm env --use-on-cd)"إنشاء ملف إصدار
أنشئ ملف .node-version أو .nvmrc في جذر المشروع:
bash
# Using .node-version (recommended)
echo "20" > .node-version
# Or using .nvmrc (compatible with nvm)
echo "v18.17.0" > .nvmrcتنسيق ملف الإصدار
يدعم .node-version التنسيقات التالية:
20 # Major version, use latest 20.x.x
20.10 # Minor version, use latest 20.10.x
20.10.0 # Exact version
lts/iron # LTS version nameاستراتيجية تحليل ملف الإصدار
يدعم fnm استراتيجيتين لتحليل ملف الإصدار:
bash
# local (default) - Only search in current directory
fnm env --version-file-strategy=local
# recursive - Recursively search parent directories
fnm env --version-file-strategy=recursiveدعم package.json engines
يمكن لـ fnm قراءة حقل engines.node من package.json:
json
{
"engines": {
"node": ">=18.0.0"
}
}ممكّن افتراضياً، يمكن تعطيله عبر متغير البيئة:
bash
export FNM_RESOLVE_ENGINES=falseأفضل ممارسات إدارة الإصدارات
1. قفل الإصدار على مستوى المشروع
أنشئ ملف .node-version في كل مشروع:
bash
cd my-project
echo "20" > .node-version
fnm install
fnm use2. التعاون الجماعي
أضف .node-version إلى Git:
bash
git add .node-version
git commit -m "chore: add .node-version"3. تكوين CI/CD
استخدم fnm في بيئات CI/CD:
yaml
# GitHub Actions
- name: Install fnm
run: curl -fsSL https://fnm.vercel.app/install | bash
- name: Install Node.js
run: fnm install && fnm use4. التطوير متعدد الإصدارات
bash
# Install multiple versions
fnm install 20
fnm install 18
fnm install 16
# Set aliases for easy switching
fnm alias 20 current
fnm alias 18 legacy
fnm alias 16 old
# Use different versions in different projects
cd project-new && fnm use current
cd project-old && fnm use legacyإلغاء تثبيت الإصدارات
bash
# Uninstall specific version
fnm uninstall 16.20.2
# Uninstall via alias (will delete version and all related aliases)
fnm uninstall oldالمشكلات الشائعة
أمر node لا يتم تحديثه بعد تبديل الإصدار
تأكد من أن تكوين الصدفة صحيح:
bash
# Check node path
which node
# Should point to fnm directory
# ~/.fnm/node-versions/.../bin/nodeالتبديل التلقائي لا يعمل
- تأكد من إضافة
--use-on-cdإلى تكوين الصدفة - تأكد من وجود ملف الإصدار
- أعد تحميل تكوين الصدفة
أولوية ملف الإصدار
يبحث fnm عن الإصدارات بالترتيب التالي:
- الإصدار المحدد في سطر الأوامر
- ملف
.node-version - ملف
.nvmrc package.jsonengines.node- الإصدار الافتراضي
روابط ذات صلة
- تثبيت Node.js - دليل التثبيت
- مرجع الأوامر - جميع تفاصيل الأوامر
- إدارة التنزيل - ميزات التنزيل ذات الصلة