Skip to content

تكوين nvmrc

مقدمة

عند تطوير عدة مشاريع، قد يتطلب كل مشروع إصدارًا مختلفًا من Node.js. في مثل هذه الحالات، نحتاج إلى تحديد إصدار Node.js لكل مشروع عن طريق تنفيذ أوامر nvm install و nvm use في الطرفية لتثبيت الإصدارات والتبديل بينها.

ومع ذلك، فإن تنفيذ الأوامر يدويًا في الطرفية في كل مرة يصبح مرهقًا، خاصة مع زيادة عدد المشاريع. من السهل نسيان التبديل بين الإصدارات أو التبديل إلى الإصدار الخاطئ، مما قد يتسبب في فشل المشاريع في البدء أو مواجهة أخطاء أثناء التشغيل.

هذا هو المكان الذي نحتاج فيه إلى طريقة لإدارة إصدارات Node.js والتبديل التلقائي بينها، وهنا يأتي دور .nvmrc.

ما هو .nvmrc؟

من الشرح أعلاه، يمكنك أن تفهم أن ملف .nvmrc يُستخدم لإدارة إصدار Node.js لمشروعنا. هذا الملف بسيط للغاية: يحتوي فقط على نص يمثل إصدار Node.js الذي يمكن لـ nvm التعرف عليه، مثل v18.12.0.

كيفية استخدام ملف .nvmrc؟

يمكنك إنشاء ملف .nvmrc بمحتوى يكون رقم إصدار Node.js أو نص آخر يمكن لـ nvm فهمه. للتفاصيل، يمكنك كتابة nvm --help في الطرفية.

باستخدام ملف .nvmrc، عندما تنفذ أوامر مثل nvm use و nvm install و nvm exec و nvm run و nvm which في الطرفية دون تحديد إصدار، سيتم استخدام الإصدار المحدد في ملف .nvmrc.

إنشاء ملف .nvmrc

على سبيل المثال، في الدليل الحالي، لجعل nvm يحدد أحدث إصدار من 18.12، أو أحدث إصدار LTS، أو أحدث إصدار من Node.js، يمكنك استخدام أمر echo لإنشاء ملف .nvmrc:

bash
$ echo "18.12" > .nvmrc
# تعيين أحدث إصدار LTS
$ echo "lts/*" > .nvmrc
# تعيين أحدث إصدار
$ echo "node" > .nvmrc

أوامر مثل nvm use ستتنقل في بنية الدليل إلى الأعلى من الدليل الحالي بحثًا عن ملف .nvmrc. هذا يعني أن تشغيل أوامر مثل nvm use في أي دليل فرعي من دليل به ملف .nvmrc سيستمر في استخدام ذلك الملف .nvmrc.

يجب أن يحتوي ملف .nvmrc على <version> تتوافق مع ما هو مدرج في nvm --help، متبوعًا بسطر جديد. المسافات اللاحقة غير مسموح بها، والسطر الجديد اللاحق إلزامي.

كما هو موضح في الصورة أدناه، لا توجد مسافة بعد v14.21.3، فقط فاصل سطر.

nvmrc

التكامل العميق مع محطات الأوامر

يمكنك استخدام avn للتكامل بعمق مع الغلاف الخاص بك والاستدعاء التلقائي لـ nvm عند تغيير الدلائل.

إذا كنت تفضل حلاً خفيف الوزن، يمكنك استخدام الطريقة أدناه.

التبديل التلقائي لإصدارات Node.js في محطة zsh بناءً على ملف .nvmrc

بعد إضافة الكود التالي إلى $HOME/.zshrc الخاص بك، سيتم استدعاء nvm use تلقائيًا كلما دخلت دليلاً يحتوي على ملف .nvmrc. السلسلة النصية في ملف .nvmrc تخبر nvm بأي إصدار من Node.js يجب استخدامه.

bash
# فتح الدليل الرئيسي وتحرير ملف .zshrc
$ cd
$ vi .zshrc

هذا هو الكود الذي يحتاج إلى كتابته في .zshrc:

bash
# انسخ هذا الجزء من الكود إلى ملف .zshrc
# ضعه بعد تهيئة nvm!
autoload -U add-zsh-hook
load-nvmrc() {
  local nvmrc_path="$(nvm_find_nvmrc)"

  if [ -n "$nvmrc_path" ]; then
    local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

    if [ "$nvmrc_node_version" = "N/A" ]; then
      nvm install
    elif [ "$nvmrc_node_version" != "$(nvm version)" ]; then
      nvm use
    fi
  elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(nvm version)" != "$(nvm version default)" ]; then
    echo "Reverting to nvm default version"
    nvm use default
  fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc

بعد تحرير ملف .zshrc، قم بتنفيذ source .zshrc لجعل الأمر ساري المفعول:

bash
$ source ~/.zshrc

في المشاريع التي تحتوي على ملف .nvmrc، عندما تفتح الطرفية المتكاملة في vscode، ستجد أن nvm use يتم تنفيذه تلقائيًا، مع الإخراج المقابل في سطر الأوامر.

nvmrc

بُني باستخدام VitePress