تكوين 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، فقط فاصل سطر.

التكامل العميق مع محطات الأوامر
يمكنك استخدام 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 يتم تنفيذه تلقائيًا، مع الإخراج المقابل في سطر الأوامر.
