مقدمة
عن
التثبيت والتحديث
ملاحظات إضافية
استكشاف الأخطاء وإصلاحها على نظام التشغيل Linux
استكشاف الأخطاء وإصلاحها على نظام التشغيل MacOS
غير مقبول
تثبيت وتحديث البرنامج النصي
التحقق من التثبيت
ملاحظات هامة
تثبيت جيت
التثبيت اليدوي
الترقية اليدوية
الاستخدام
nvm use
تلقائيًا في دليل يحتوي على ملف .nvmrc
سحق
zsh
سمكة
قم بتمرير رأس التفويض إلى المرآة
الألوان المخصصة المستمرة
قمع الإخراج الملون
دعم طويل الأمد
ترحيل الحزم العالمية أثناء التثبيت
الحزم العالمية الافتراضية من الملف أثناء التثبيت
io.js
إصدار النظام من العقدة
إصدارات القائمة
ضبط الألوان المخصصة
استعادة المسار
تعيين إصدار العقدة الافتراضية
استخدم مرآة لثنائيات العقدة
.nvmrc
تكامل أعمق للقشرة
تشغيل الاختبارات
متغيرات البيئة
إكمال باش
الاستخدام
قضايا التوافق
تثبيت nvm على Alpine Linux
جبال الألب لينكس 3.13+
جبال الألب لينكس 3.5 - 3.12
إلغاء التثبيت / الإزالة
إلغاء التثبيت اليدوي
دوكر لبيئة التطوير
مشاكل
استكشاف أخطاء نظام التشغيل Mac وإصلاحها
استكشاف أخطاء WSL وإصلاحها
المشرفون
دعم المشروع
دعم المؤسسات
رخصة
إشعار حقوق النشر
يتيح لك nvm
تثبيت إصدارات مختلفة من العقدة واستخدامها بسرعة عبر سطر الأوامر.
مثال:
استخدام $ nvm 16 الآن باستخدام العقدة v16.9.1 (npm v7.21.1) العقدة $ -v v16.9.1 استخدام $ nvm 14 الآن باستخدام العقدة v14.18.0 (npm v6.14.15) العقدة $ -v v14.18.0 تثبيت $ nvm 12 الآن باستخدام العقدة v12.22.6 (npm v6.14.5) العقدة $ -v v12.22.6
بهذه البساطة!
nvm هو مدير إصدار لـNode.js، وهو مصمم ليتم تثبيته لكل مستخدم، واستدعاءه لكل Shell. يعمل nvm
على أي غلاف متوافق مع POSIX (sh، وdash، وksh، وzsh، وbash)، ولا سيما على هذه الأنظمة الأساسية: unix، وmacOS، وwindows WSL.
لتثبيت nvm أو تحديثه ، يجب عليك تشغيل البرنامج النصي للتثبيت. للقيام بذلك، يمكنك إما تنزيل البرنامج النصي وتشغيله يدويًا، أو استخدام الأمر cURL أو Wget التالي:
حليقة -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | سحق
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | سحق
يؤدي تشغيل أي من الأوامر المذكورة أعلاه إلى تنزيل البرنامج النصي وتشغيله. يستنسخ البرنامج النصي مستودع nvm إلى ~/.nvm
، ويحاول إضافة أسطر المصدر من المقتطف أدناه إلى ملف التعريف الصحيح ( ~/.bash_profile
أو ~/.zshrc
أو ~/.profile
أو ~/.bashrc
) .
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"[ -s "$ NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # يؤدي هذا إلى تحميل nvm
إذا كان متغير البيئة $XDG_CONFIG_HOME
موجودًا، فسيتم وضع ملفات nvm
هناك.
يمكنك إضافة --no-use
إلى نهاية البرنامج النصي أعلاه (... nvm.sh --no-use
) لتأجيل استخدام nvm
حتى use
يدويًا.
يمكنك تخصيص مصدر التثبيت والدليل والملف الشخصي والإصدار باستخدام متغيرات NVM_SOURCE
و NVM_DIR
و PROFILE
و NODE_VERSION
. على سبيل المثال: curl ... | NVM_DIR="path/to/nvm"
. تأكد من أن NVM_DIR
لا يحتوي على شرطة مائلة زائدة.
يمكن أن يستخدم برنامج التثبيت git
أو curl
أو wget
لتنزيل nvm
، أيهما متاح.
يمكنك توجيه المثبت بعدم تعديل تكوين Shell الخاص بك (على سبيل المثال، إذا كنت قد حصلت بالفعل على عمليات إكمال عبر مكون إضافي zsh nvm) عن طريق تعيين PROFILE=/dev/null
قبل تشغيل البرنامج النصي install.sh
. فيما يلي مثال لأمر من سطر واحد للقيام بذلك: PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash'
على Linux، بعد تشغيل البرنامج النصي للتثبيت، إذا حصلت على nvm: command not found
أو لم ترى أي تعليقات من جهازك الطرفي بعد كتابة command -v nvm
، فما عليك سوى إغلاق المحطة الحالية، وفتح محطة طرفية جديدة، وحاول التحقق مرة أخرى. وبدلاً من ذلك، يمكنك تشغيل الأوامر التالية للأصداف المختلفة في سطر الأوامر:
باش : source ~/.bashrc
zsh : source ~/.zshrc
كش : . ~/.profile
يجب أن تلتقط هذه الأمر nvm
.
منذ OS X 10.9، تم تعيين /usr/bin/git
مسبقًا بواسطة أدوات سطر أوامر Xcode، مما يعني أنه لا يمكننا اكتشاف ما إذا كان Git مثبتًا أم لا بشكل صحيح. تحتاج إلى تثبيت أدوات سطر أوامر Xcode يدويًا قبل تشغيل البرنامج النصي للتثبيت، وإلا فسوف يفشل. (انظر رقم 1782)
إذا حصلت على nvm: command not found
بعد تشغيل البرنامج النصي للتثبيت، فقد يكون أحد الأسباب التالية هو السبب:
منذ نظام التشغيل macOS 10.15، الغلاف الافتراضي هو zsh
وسيبحث nvm عن .zshrc
لتحديثه، ولا يتم تثبيت أي شيء افتراضيًا. أنشئ واحدًا touch ~/.zshrc
وقم بتشغيل البرنامج النصي للتثبيت مرة أخرى.
إذا كنت تستخدم bash، الصدفة الافتراضية السابقة، فقد لا يحتوي نظامك على ملفات .bash_profile
أو .bashrc
حيث تم إعداد الأمر. أنشئ واحدًا منهم عن طريق touch ~/.bash_profile
أو touch ~/.bashrc
وقم بتشغيل البرنامج النصي للتثبيت مرة أخرى. ثم قم بتشغيل . ~/.bash_profile
أو . ~/.bashrc
لالتقاط أمر nvm
.
لقد استخدمت bash
من قبل، ولكنك قمت بتثبيت zsh
. تحتاج إلى إضافة هذه السطور يدويًا إلى ~/.zshrc
وتشغيلها . ~/.zshrc
.
قد تحتاج إلى إعادة تشغيل مثيلك الطرفي أو تشغيل . ~/.nvm/nvm.sh
. ستؤدي إعادة تشغيل جهازك الطرفي/فتح علامة تبويب/نافذة جديدة، أو تشغيل الأمر المصدر إلى تحميل الأمر والتكوين الجديد.
إذا لم يساعدك ما سبق، فقد تحتاج إلى إعادة تشغيل مثيلك الطرفي. حاول فتح علامة تبويب/نافذة جديدة في جهازك ثم أعد المحاولة.
إذا لم يحل ما ورد أعلاه المشكلة، فيمكنك تجربة ما يلي:
إذا كنت تستخدم bash، فمن المحتمل أن .bash_profile
الخاص بك (أو ~/.profile
) لا يقوم بمصدر ملف ~/.bashrc
الخاص بك بشكل صحيح. يمكنك إصلاح ذلك عن طريق إضافة source ~/
إليه أو اتباع الخطوة التالية أدناه.
حاول إضافة المقتطف من قسم التثبيت، الذي يبحث عن دليل nvm الصحيح ويقوم بتحميل nvm، إلى ملفك الشخصي المعتاد ( ~/.bash_profile
، ~/.zshrc
، ~/.profile
، أو ~/.bashrc
).
لمزيد من المعلومات حول هذه المشكلة والحلول الممكنة، يرجى الرجوع هنا
ملاحظة: بالنسبة لأجهزة Mac المزودة بشريحة Apple Silicon، بدأت العقدة في تقديم حزم Arm64 Arch Darwin منذ الإصدار 16.0.0 والدعم التجريبي لـarm64 عند التجميع من المصدر منذ الإصدار 14.17.0. إذا كنت تواجه مشكلات في تثبيت العقدة باستخدام nvm
، فقد ترغب في التحديث إلى أحد هذه الإصدارات أو الإصدارات الأحدث.
يمكنك استخدام المهمة:
- الاسم: تثبيت nvm ansible.builtin.shell: > curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | وسائط bash: إنشاء: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
للتحقق من تثبيت nvm، قم بما يلي:
الأمر -v nvm
والتي يجب أن تخرج nvm
إذا كان التثبيت ناجحًا. يرجى ملاحظة أن which nvm
لن يعمل، نظرًا لأن nvm
عبارة عن وظيفة shell من مصدر، وليست ثنائية قابلة للتنفيذ.
ملاحظة: في Linux، بعد تشغيل البرنامج النصي للتثبيت، إذا حصلت على nvm: command not found
أو لم ترى أي تعليقات من جهازك الطرفي بعد كتابة command -v nvm
، فما عليك سوى إغلاق المحطة الحالية، وفتح محطة طرفية جديدة، وحاول التحقق مرة أخرى.
إذا كنت تقوم بتشغيل نظام لا يتوفر فيه ثنائي معبأ مسبقًا، مما يعني أنك ستقوم بتثبيت العقدة أو io.js من كود المصدر الخاص به، فأنت بحاجة إلى التأكد من أن نظامك يحتوي على مترجم C++. بالنسبة لنظام التشغيل X، سيعمل Xcode، وبالنسبة لنظام GNU/Linux المستند إلى Debian/Ubuntu، تعمل حزم build-essential
و libssl-dev
.
ملاحظة: يدعم nvm
أيضًا نظام التشغيل Windows في بعض الحالات. يجب أن يعمل من خلال WSL (نظام Windows الفرعي لنظام Linux) اعتمادًا على إصدار WSL. يجب أن يعمل أيضًا مع GitBash (MSYS) أو Cygwin. بخلاف ذلك، بالنسبة لنظام التشغيل Windows، توجد بعض البدائل التي لا ندعمها ولا نطورها:
nvm-windows
nodist
nvs
ملحوظة: nvm
لا يدعم السمك أيضًا (انظر رقم 303). البدائل موجودة، والتي لا ندعمها ولا نطورها:
يسمح لك الجهير باستخدام الأدوات المساعدة المكتوبة لـ Bash في قشر السمك
يعمل fast-nvm-fish فقط مع أرقام الإصدارات (وليس الأسماء المستعارة) ولكنه لا يؤدي إلى إبطاء بدء تشغيل الصدفة بشكل ملحوظ
plugin-nvm plugin لـ Oh My Fish، الذي يجعل nvm وإكمالاته متاحة في غلاف السمك
fnm - مدير إصدار يعتمد على الصيادين للأسماك
Fish-nvm - غلاف حول nvm للأسماك، ويؤخر تحديد مصادر nvm حتى يتم استخدامه فعليًا.
ملاحظة: لا تزال لدينا بعض المشاكل مع FreeBSD، لأنه لا يوجد ثنائي رسمي مُعد مسبقًا لـ FreeBSD، وقد يحتاج البناء من المصدر إلى تصحيحات؛ راجع تذكرة الإصدار:
[#900] عقدة [خطأ] في FreeBSD قد تحتاج إلى تصحيح
العقدة/العقدة#3716
ملاحظة: في نظام التشغيل OS X، إذا لم يكن Xcode مثبتًا لديك ولا ترغب في تنزيل الملف الذي يبلغ حجمه حوالي 4.3 جيجابايت، فيمكنك تثبيت Command Line Tools
. يمكنك الاطلاع على منشور المدونة هذا حول كيفية القيام بذلك:
كيفية تثبيت أدوات سطر الأوامر في OS X Mavericks وYosemite (بدون Xcode)
ملاحظة: في نظام التشغيل OS X، إذا كان لديك/كان لديك عقدة "نظام" مثبتة وتريد تثبيت الوحدات النمطية على مستوى العالم، فضع في اعتبارك ما يلي:
عند استخدام nvm
لا تحتاج إلى sudo
لتثبيت وحدة على مستوى العالم باستخدام npm -g
، لذا بدلاً من القيام sudo npm install -g grunt
، قم بدلاً من ذلك بـ npm install -g grunt
إذا كان لديك ملف ~/.npmrc
، فتأكد من أنه لا يحتوي على أي إعدادات prefix
(وهو أمر غير متوافق مع nvm
)
يمكنك (لكن لا ينبغي لك؟) الاحتفاظ بتثبيت عقدة "النظام" السابقة، ولكن nvm
سيكون متاحًا فقط لحساب المستخدم الخاص بك (الحساب المستخدم لتثبيت nvm). قد يتسبب هذا في عدم تطابق الإصدار، حيث سيستخدم المستخدمون الآخرون /usr/local/lib/node_modules/*
مقابل حساب المستخدم الخاص بك باستخدام ~/.nvm/versions/node/vX.XX/lib/node_modules/*
تثبيت البيرة غير مدعوم. إذا كانت لديك مشكلات مع nvm
المثبت على Homebrew، فيرجى brew uninstall
وتثبيته باستخدام الإرشادات أدناه، قبل تقديم مشكلة.
ملاحظة: إذا كنت تستخدم zsh
فيمكنك بسهولة تثبيت nvm
كمكون إضافي لـ zsh. قم بتثبيت zsh-nvm
وقم بتشغيل nvm upgrade
للترقية.
ملحوظة: قد تواجه إصدارات Git قبل الإصدار 1.7 مشكلة استنساخ مصدر nvm
من GitHub عبر بروتوكول https، وهناك أيضًا سلوك مختلف لـ git قبل الإصدار v1.6، ولا يمكن لـ git قبل الإصدار v1.17.10 استنساخ العلامات، لذا فإن الحد الأدنى إصدار git المطلوب هو v1.7.10. إذا كنت مهتمًا بالمشكلة التي ذكرناها هنا، فيرجى الرجوع إلى مقالة أخطاء استنساخ HTTPS الخاصة بـ GitHub.
إذا قمت بتثبيت git
(يتطلب git v1.7.10+):
انسخ هذا الريبو في جذر ملف تعريف المستخدم الخاص بك
cd ~/
من أي مكان ثم git clone https://github.com/nvm-sh/nvm.git .nvm
cd ~/.nvm
وتحقق من الإصدار الأحدث باستخدام git checkout v0.40.1
قم بتنشيط nvm
عن طريق الحصول عليه من Shell الخاص بك: . ./nvm.sh
أضف الآن هذه السطور إلى ملف ~/.bashrc
أو ~/.profile
أو ~/.zshrc
الخاص بك ليتم الحصول عليه تلقائيًا عند تسجيل الدخول: (قد تضطر إلى الإضافة إلى أكثر من ملف من الملفات المذكورة أعلاه)
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # يؤدي هذا إلى تحميل nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # يؤدي هذا إلى تحميل nvm bash_completion
للتثبيت اليدوي بالكامل، قم بتنفيذ الأسطر التالية لاستنساخ مستودع nvm
أولاً في $HOME/.nvm
، ثم تحميل nvm
:
تصدير NVM_DIR = "$HOME/.nvm" && ( استنساخ البوابة https://github.com/nvm-sh/nvm.git "$NVM_DIR" القرص المضغوط "$NVM_DIR" git checkout `git description --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && . "$NVM_DIR/nvm.sh"
أضف الآن هذه السطور إلى ملف ~/.bashrc
أو ~/.profile
أو ~/.zshrc
الخاص بك ليتم الحصول عليه تلقائيًا عند تسجيل الدخول: (قد تضطر إلى الإضافة إلى أكثر من ملف من الملفات المذكورة أعلاه)
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # يؤدي هذا إلى تحميل nvm[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # يؤدي هذا إلى تحميل nvm bash_completion
للترقية اليدوية باستخدام git
(يتطلب git v1.7.10+):
التغيير إلى $NVM_DIR
هدم أحدث التغييرات
تحقق من أحدث إصدار
تفعيل الإصدار الجديد
( القرص المضغوط "$NVM_DIR" جلب بوابة - أصل العلامات git checkout `git description --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)`) && . "$NVM_DIR/nvm.sh"
لتنزيل الإصدار الأخير من العقدة وتجميعه وتثبيته، قم بما يلي:
عقدة تثبيت nvm # "العقدة" هي اسم مستعار لأحدث إصدار
لتثبيت إصدار محدد من العقدة:
تثبيت nvm 14.7.0 # أو 16.3.0، 12.22.1، إلخ
لتعيين اسم مستعار:
nvm الاسم المستعار my_alias v14.4.0
تأكد من أن الاسم المستعار الخاص بك لا يحتوي على أي مسافات أو خطوط مائلة.
يصبح الإصدار الأول المثبت هو الإصدار الافتراضي. ستبدأ الأصداف الجديدة بالإصدار الافتراضي للعقدة (على سبيل المثال، nvm alias default
).
يمكنك سرد الإصدارات المتاحة باستخدام ls-remote
:
nvm ls-remote
وبعد ذلك في أي غلاف جديد، ما عليك سوى استخدام الإصدار المثبت:
عقدة استخدام nvm
أو يمكنك فقط تشغيله:
عقدة تشغيل nvm --version
أو يمكنك تشغيل أي أمر عشوائي في غلاف فرعي بالإصدار المطلوب من العقدة:
nvm exec 4.2 عقدة --version
يمكنك أيضًا الحصول على المسار إلى الملف القابل للتنفيذ حيث تم تثبيته:
nvm الذي 12.22
بدلاً من مؤشر الإصدار مثل "14.7" أو "16.3" أو "12.22.1"، يمكنك استخدام الأسماء المستعارة الافتراضية الخاصة التالية مع nvm install
و nvm use
nvm run
و nvm exec
و nvm which
وما إلى ذلك:
node
: يؤدي هذا إلى تثبيت أحدث إصدار من node
iojs
: يؤدي هذا إلى تثبيت الإصدار الأحدث من io.js
stable
: تم إهمال هذا الاسم المستعار، وينطبق فقط على node
v0.12
والإصدارات السابقة. حاليًا، هذا هو الاسم المستعار node
.
unstable
: يشير هذا الاسم المستعار إلى node
v0.11
- آخر إصدار للعقدة "غير المستقرة"، منذ ما بعد 1.0، جميع إصدارات العقدة مستقرة. (في SemVer، تشير الإصدارات إلى الكسر وليس الاستقرار).
لدى العقدة جدول زمني للدعم طويل المدى (LTS) يمكنك الرجوع إلى إصدارات LTS في الأسماء المستعارة وملفات .nvmrc
مع التدوين lts/*
لأحدث LTS، و lts/argon
لإصدارات LTS من سطر "argon"، على سبيل المثال . بالإضافة إلى ذلك، تدعم الأوامر التالية وسيطات LTS:
nvm install --lts
/ nvm install --lts=argon
/ nvm install 'lts/*'
nvm install lts/argon
nvm uninstall --lts
/ nvm uninstall --lts=argon
/ nvm uninstall 'lts/*'
/ nvm uninstall lts/argon
nvm use --lts
/ nvm use --lts=argon
/ nvm use 'lts/*'
/ nvm use lts/argon
nvm exec --lts
/ nvm exec --lts=argon
/ nvm exec 'lts/*'
/ nvm exec lts/argon
nvm run --lts
/ nvm run --lts=argon
/ nvm run 'lts/*'
/ nvm run lts/argon
nvm ls-remote --lts
/ nvm ls-remote --lts=argon
nvm ls-remote 'lts/*'
/ nvm ls-remote lts/argon
nvm version-remote --lts
/ nvm version-remote --lts=argon
/ nvm version-remote 'lts/*'
/ nvm version-remote lts/argon
في أي وقت تتصل نسختك المحلية من nvm
بـ https://nodejs.org، ستعيد إنشاء الأسماء المستعارة المحلية المناسبة لجميع خطوط LTS المتاحة. تتم إدارة هذه الأسماء المستعارة (المخزنة ضمن $NVM_DIR/alias/lts
) بواسطة nvm
، ويجب ألا تقوم بتعديل هذه الملفات أو إزالتها أو إنشائها - توقع التراجع عن تغييراتك، وتوقع أن يؤدي التدخل في هذه الملفات إلى حدوث أخطاء من المحتمل أن تؤدي إلى حدوث أخطاء لا يتم دعمها.
للحصول على أحدث إصدار من العقدة LTS وترحيل الحزم المثبتة الموجودة لديك، استخدم
تثبيت nvm --reinstall-packages-from=current 'lts/*'
إذا كنت تريد تثبيت إصدار جديد من Node.js وترحيل حزم npm من الإصدار السابق:
تثبيت nvm --reinstall-packages-from=node العقدة
سيستخدم هذا أولاً "عقدة إصدار nvm" لتحديد الإصدار الحالي الذي تقوم بترحيل الحزم منه. ثم يقوم بحل الإصدار الجديد لتثبيته من الخادم البعيد وتثبيته. وأخيرًا، يقوم بتشغيل "حزم إعادة تثبيت nvm" لإعادة تثبيت حزم npm من الإصدار السابق من Node إلى الإصدار الجديد.
يمكنك أيضًا تثبيت وترحيل حزم npm من إصدارات محددة من Node مثل هذا:
تثبيت nvm --إعادة تثبيت الحزم من = 5 6 تثبيت nvm --reinstall-packages-from=iojs v4.2
لاحظ أن إعادة تثبيت الحزم بشكل صريح لا يؤدي إلى تحديث إصدار npm — وهذا لضمان عدم ترقية npm عن طريق الخطأ إلى إصدار معطل لإصدار العقدة الجديد.
لتحديث npm في نفس الوقت أضف علامة --latest-npm
، مثل هذا:
تثبيت nvm --reinstall-packages-from=default --latest-npm 'lts/*'
أو يمكنك في أي وقت تشغيل الأمر التالي للحصول على أحدث إصدار مدعوم من npm على إصدار العقدة الحالي:
تثبيت nvm-أحدث-npm
إذا كنت قد حصلت بالفعل على خطأ يفيد بأن "npm لا يدعم Node.js"، فستحتاج إلى (1) العودة إلى إصدار العقدة السابق ( nvm ls
& nvm use
)، (2) احذف إصدار العقدة الذي تم إنشاؤه حديثًا ( nvm uninstall
)، ثم (3) أعد تشغيل nvm install
باستخدام علامة --latest-npm
.
إذا كانت لديك قائمة بالحزم الافتراضية التي تريد تثبيتها في كل مرة تقوم فيها بتثبيت إصدار جديد، فإننا ندعم ذلك أيضًا - ما عليك سوى إضافة أسماء الحزم، واحد في كل سطر، إلى الملف $NVM_DIR/default-packages
. يمكنك إضافة أي شيء يقبله npm كوسيطة حزمة في سطر الأوامر.
# $NVM_DIR/default-packagesrimraf كائن فحص @1.0.2 ستيفيماو/الوسادة اليسرى
إذا كنت ترغب في تثبيت io.js:
تثبيت nvm iojs
إذا كنت تريد تثبيت إصدار جديد من io.js وترحيل حزم npm من الإصدار السابق:
تثبيت nvm --reinstall-packages-from=iojs iojs
تنطبق نفس الإرشادات المذكورة لترحيل حزم npm في العقدة على io.js.
إذا كنت تريد استخدام إصدار العقدة المثبت على النظام، فيمكنك استخدام الاسم المستعار الافتراضي الخاص "النظام":
نظام استخدام nvm نظام تشغيل nvm --version
إذا كنت تريد معرفة الإصدارات المثبتة:
nvm ليرة سورية
إذا كنت تريد معرفة الإصدارات المتوفرة للتثبيت:
nvm ls-remote
يمكنك تعيين خمسة ألوان سيتم استخدامها لعرض معلومات الإصدار والاسم المستعار. تحل هذه الألوان محل الألوان الافتراضية. الألوان الأولية هي: gbyre
رموز الألوان:
r/R = red / bold red g/G = green / bold green b/B = blue / bold blue c/C = cyan / bold cyan m/M = magenta / bold magenta y/Y = yellow / bold yellow k/K = black / bold black e/W = light grey / white
مجموعة ألوان nvm rgBcm
إذا كنت تريد أن تستمر الألوان المخصصة بعد إنهاء الصدفة، فقم بتصدير متغير NVM_COLORS
في ملف تعريف الصدفة الخاص بك. على سبيل المثال، إذا كنت تريد استخدام اللون السماوي والأرجواني والأخضر والأحمر الغامق والأصفر الغامق، أضف السطر التالي:
تصدير NVM_COLORS='cmgRY'
nvm help (or -h or --help)
و nvm ls
و nvm ls-remote
و nvm alias
تنتج عادةً مخرجات ملونة. يمكنك تعطيل الألوان باستخدام خيار --no-colors
(أو عن طريق تعيين متغير البيئة TERM=dumb
):
nvm ليرة سورية - لا يوجد ألوان مساعدة nvm --بدون ألوان TERM=nvm ls
لاستعادة المسار الخاص بك، يمكنك إلغاء تنشيطه:
إلغاء تنشيط nvm
لتعيين إصدار Node افتراضي لاستخدامه في أي Shell جديد، استخدم الاسم المستعار "default":
العقدة الافتراضية للاسم المستعار nvm # يشير هذا إلى أحدث إصدار مثبت من الاسم المستعار nodenvm الافتراضي 18 # يشير هذا إلى أحدث إصدار مثبت من الإصدار v18.x من الاسم المستعار nodenvm الافتراضي 18.12 # يشير هذا إلى أحدث إصدار مثبت من العقدة v18.12.x
لاستخدام نسخة متطابقة من ثنائيات العقدة، قم بتعيين $NVM_NODEJS_ORG_MIRROR
:
تصدير NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist عقدة تثبيت nvm NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2
لاستخدام نسخة متطابقة من ثنائيات io.js، قم بتعيين $NVM_IOJS_ORG_MIRROR
:
تصدير NVM_IOJS_ORG_MIRROR=https://iojs.org/dist تثبيت nvm iojs-v1.0.3 NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm تثبيت iojs-v1.0.3
لن يؤدي nvm use
افتراضيًا إلى إنشاء رابط رمزي "حالي". قم بتعيين $NVM_SYMLINK_CURRENT
على "true" لتمكين هذا السلوك، والذي يكون مفيدًا في بعض الأحيان لـ IDEs. لاحظ أن استخدام nvm
في علامات تبويب Shell المتعددة مع تمكين متغير البيئة هذا يمكن أن يسبب حالات سباق.
لتمرير رأس التفويض إلى عنوان URL المتطابق، قم بتعيين $NVM_AUTH_HEADER
NVM_AUTH_HEADER="عقدة تثبيت nvm للرمز السري للحامل".
يمكنك إنشاء ملف .nvmrc
يحتوي على رقم إصدار العقدة (أو أي سلسلة أخرى يفهمها nvm
؛ راجع nvm --help
للحصول على التفاصيل) في الدليل الجذر للمشروع (أو أي دليل أصل). بعد ذلك، nvm use
و nvm install
و nvm exec
و nvm run
و nvm which
سيستخدم الإصدار المحدد في ملف .nvmrc
إذا لم يتم توفير إصدار في سطر الأوامر.
على سبيل المثال، لجعل nvm افتراضيًا لأحدث إصدار 5.9، أو أحدث إصدار LTS، أو أحدث إصدار للعقدة للدليل الحالي:
$ صدى "5.9"> .nvmrc $ echo "lts/*" > .nvmrc # افتراضيًا لأحدث إصدار LTS$ echo "node" > .nvmrc # افتراضيًا لأحدث إصدار
[ملاحظة: تفترض هذه الأمثلة وجود إصدار shell متوافق مع POSIX من echo
. إذا كنت تستخدم بيئة تطوير Windows cmd
، على سبيل المثال، يتم استخدام ملف .nvmrc
لتكوين نشر Linux عن بعد، فضع في اعتبارك أنه سيتم نسخ "
s مما يؤدي إلى ملف غير صالح. قم بإزالتها.]
ثم عند تشغيل nvm استخدم:
استخدام $ nvm تم العثور على '/path/to/project/.nvmrc' بالإصدار <5.9> والآن باستخدام العقدة v5.9.1 (npm v3.7.3)
سيؤدي تشغيل تثبيت nvm أيضًا إلى التبديل إلى الإصدار الصحيح، ولكن إذا لم يكن إصدار العقدة الصحيح مثبتًا بالفعل، فسيتم تثبيته لك.
تثبيت $ nvm تم العثور على '/path/to/project/.nvmrc' بالإصدار <5.9> جارٍ تنزيل العقدة v5.9.1 وتثبيتها... التنزيل https://nodejs.org/dist/v5.9.1/node-v5.9.1-linux-x64.tar.xz...################### ##################################################################################################### ############### 100.0%حساب المجموع الاختباري باستخدام sha256sum تمت مطابقة المجاميع الاختبارية! الآن باستخدام العقدة v5.9.1 (npm v3.7.3)
nvm use
وآخرون. آل. سوف يجتاز بنية الدليل لأعلى من الدليل الحالي بحثًا عن ملف .nvmrc
. وبعبارة أخرى، تشغيل nvm use
et. آل. في أي دليل فرعي للدليل باستخدام .nvmrc
سيؤدي إلى استخدام .nvmrc
.
يجب أن تحتوي محتويات ملف .nvmrc
على
واحد بدقة (كما هو موضح بواسطة nvm --help
) متبوعًا بسطر جديد. قد تحتوي ملفات .nvmrc
أيضًا على تعليقات. محدد التعليق هو #
، وسيتم تجاهله وأي نص بعده، بالإضافة إلى الأسطر الفارغة والمسافات البيضاء البادئة واللاحقة عند التحليل.
يُسمح أيضًا بأزواج المفاتيح/القيم التي تستخدم =
ويتم تجاهلها، ولكن يتم حجزها للاستخدام المستقبلي، وقد تتسبب في حدوث أخطاء في التحقق من الصحة في المستقبل.
قم بتشغيل npx nvmrc
للتحقق من صحة ملف .nvmrc
. إذا كانت نتائج تلك الأداة لا تتفق مع nvm، فهذا يعني أن أحدهما به خطأ - يرجى الإبلاغ عن المشكلة.
يمكنك استخدام avn
للتكامل بعمق في الصدفة الخاصة بك واستدعاء nvm
تلقائيًا عند تغيير الدلائل. avn
غير مدعوم من قبل مشرفي nvm
. الرجاء الإبلاغ عن المشكلات إلى فريق avn
.
يمكنك أيضًا استخدام nvshim
لدمج صناديق node
و npm
و npx
لاستخدام تكوين nvm
في الدليل الحالي تلقائيًا. nvshim
غير مدعوم من قبل مشرفي nvm
. الرجاء الإبلاغ عن المشكلات إلى فريق nvshim
.
إذا كنت تفضل حلاً خفيف الوزن، فقد ساهم مستخدمو nvm
بالوصفات أدناه. لا يتم دعمهم من قبل مشرفي nvm
. ومع ذلك، فإننا نقبل طلبات السحب لمزيد من الأمثلة.
nvm use
تلقائيًا في دليل يحتوي على ملف .nvmrc
في ملف التعريف الخاص بك ( ~/.bash_profile
أو ~/.zshrc
أو ~/.profile
أو ~/.bashrc
)، أضف ما يلي nvm use
عند إدخال دليل جديد:
ضع ما يلي في نهاية $HOME/.bashrc
الخاص بك :
cdnvm() { الأمر cd "$@" || العودة $؟ nvm_path="$(nvm_find_up .nvmrc | الأمر tr -d 'n')" # إذا لم يكن هناك ملف .nvmrc، فاستخدم إصدار nvm الافتراضي إذا [[ ! $nvm_path = *[^[:space:]]* ]]; ثم أعلن default_version default_version="$(nvm version default)" # إذا لم يكن هناك إصدار افتراضي، فاضبطه على `node` # سيستخدم هذا الإصدار الأحدث على جهازك if [ $default_version = 'N/A' ]; ثم العقدة الافتراضية للاسم المستعار nvm default_version=$(nvm version default) fi # إذا كان الإصدار الحالي ليس هو الإصدار الافتراضي، فاضبطه لاستخدام الإصدار الافتراضي if [ "$(nvm current)" != "${default_version}" ]; ثم nvm استخدم fi elif الافتراضي [[ -s "${nvm_path}/.nvmrc" && -r "${nvm_path}/.nvmrc" ]]; ثم أعلن عن nvm_version nvm_version=$(<"${nvm_path}"/.nvmrc) أعلن locally_resolved_nvm_version # سيتحقق `nvm ls` من جميع الإصدارات المتاحة محليًا # إذا كان هناك عدة إصدارات متطابقة، فاختر الإصدار الأحدث # قم بإزالة `->` و` *` الأحرف والمسافات # `locally_resolved_nvm_version` ستكون `N/A` إذا لم يتم العثور على إصدارات محلية locally_resolved_nvm_version=$(nvm ls --no-colors "${nvm_version}" | ذيل الأمر -1 | الأمر tr -d '->*' | الأمر tr -d '[:space:]') # إذا كان كذلك لم يتم تثبيته بالفعل، قم بتثبيته # سيستخدم `nvm install` ضمنيًا الإصدار المثبت حديثًا إذا [ "${locally_resolved_nvm_version}" = 'N/A' ]; ثم تثبيت nvm "${nvm_version}"; elif [ "$(nvm current)" != "${locally_resolved_nvm_version}" ]; ثم استخدم nvm "${nvm_version}"; fi fi}alias cd='cdnvm'cdnvm "$PWD" || مخرج
سيبحث هذا الاسم المستعار عن "أعلى" من دليلك الحالي لاكتشاف ملف .nvmrc
. إذا وجده، فسوف يتحول إلى هذا الإصدار؛ إذا لم يكن الأمر كذلك، فإنه سيتم استخدام الإصدار الافتراضي.
سيتم تثبيت وظيفة الصدفة هذه (إذا لزم الأمر) nvm use
إصدار العقدة المحدد عند العثور على .nvmrc
، nvm use default
بخلاف ذلك.
ضع هذا في $HOME/.zshrc
الخاص بك لاستدعاء nvm use
تلقائيًا عندما تدخل دليلًا يحتوي على ملف .nvmrc
مع سلسلة تخبر nvm بالعقدة التي يجب use
:
# ضع هذا بعد تهيئة nvm!autoload -U add-zsh-hookload-nvmrc() { local nvmrc_path nvmrc_path = "$(nvm_find_nvmrc)" if [ -n "$nvmrc_path" ]; ثم nvmrc_node_version المحلي nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") if [ "$nvmrc_node_version" = "N/A" ]; ثم nvm install elif [ "$nvmrc_node_version" != "$(nvm version)" ]; ثم nvm استخدم fi elif [ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ] && [ "$(إصدار nvm)" != "$(إصدار nvm الافتراضي)" ]; ثم صدى "العودة إلى الإصدار الافتراضي nvm" Nvm يستخدم fi الافتراضي} add-zsh-hook chpwd Load-nvmrc تحميل nvmrc
يتطلب هذا تثبيت الجهير.
# ~/.config/fish/functions/nvm.fishfunction nvm مصدر الجهير ~/.nvm/nvm.sh --no-use ';' nvm $argvend# ~/.config/fish/functions/nvm_find_nvmrc.fishfunction nvm_find_nvmrc مصدر الجهير ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrcend# ~/.config/fish/functions/load_nvm.fishfunction Load_nvm --on-variable = "PWD" set -l default_node_version (إصدار nvm الافتراضي) set -l Node_version (إصدار nvm) set -l nvmrc_path (nvm_find_nvmrc) إذا كان الاختبار -n "$nvmrc_path" set -l nvmrc_node_version (إصدار nvm (cat $nvmrc_path)) إذا كان الاختبار "$nvmrc_node_version" = "N/A" تثبيت nvm (cat $nvmrc_path) وإلا إذا تم اختبار "$nvmrc_node_version" != "$node_version" استخدم nvm $nvmrc_node_version end else if test "$node_version" != "$default_node_version" echo "العودة إلى إصدار العقدة الافتراضي" nvm استخدم endend# الافتراضي ~/.config/fish/config.fish# يجب عليك الاتصال به عند التهيئة وإلا فلن يعمل الاستماع إلى تبديل الدليل_nvm > /dev/stderr
تتم كتابة الاختبارات في Urchin. قم بتثبيت Urchin (والتبعيات الأخرى) مثل ذلك:
npm install
هناك اختبارات بطيئة واختبارات سريعة. تقوم الاختبارات البطيئة بأشياء مثل تثبيت العقدة والتحقق من استخدام الإصدارات الصحيحة. تقوم الاختبارات السريعة بتزييف هذا لاختبار أشياء مثل الأسماء المستعارة وإلغاء التثبيت. من جذر مستودع nvm git، قم بإجراء الاختبارات السريعة مثل هذا:
npm run test/fast
قم بإجراء الاختبارات البطيئة مثل هذا:
npm run test/slow
قم بإجراء كافة الاختبارات مثل هذا:
npm test
ملاحظة مفيدة: تجنب تشغيل nvm أثناء تشغيل الاختبارات.
يكشف nvm عن متغيرات البيئة التالية:
NVM_DIR
- دليل تثبيت nvm.
NVM_BIN
- حيث يتم تثبيت العقدة وnpm والحزم العامة للإصدار النشط من العقدة.
NVM_INC
- دليل ملفات العقدة (مفيد لبناء ملحقات C/C++ للعقدة).
NVM_CD_FLAGS
- يستخدم للحفاظ على التوافق مع zsh.
NVM_RC_VERSION
- إصدار من ملف nvmrc في حالة استخدامه.
بالإضافة إلى ذلك، يقوم nvm بتعديل PATH
، وإذا كان موجودًا، MANPATH
و NODE_PATH
عند تغيير الإصدارات.
للتنشيط، تحتاج إلى المصدر bash_completion
:
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
ضع سطر المصادر أعلاه أسفل سطر المصادر مباشرةً لـ nvm في ملفك الشخصي ( .bashrc
, .bash_profile
).
نفم:
علامة التبويب
$ nvm
الاسم المستعار إلغاء تنشيط قائمة التثبيت - إعادة التثبيت عن بعد - إصدار إلغاء تثبيت الحزم Cache exec install-latest-npm ls run unload version-remote قائمة المساعدة الحالية ls-remote unalias تستخدم والتي
الاسم المستعار nvm:
$ nvm alias
Tab
الافتراضي iojs lts/* lts/الأرجون lts/البورون lts/الكربون lts/dubnium lts/عقدة الإربيوم مستقرة غير مستقرة
$ nvm alias my_alias
Tab
v10.22.0 v12.18.3 v14.8.0
استخدام nvm:
$ nvm use
علامة التبويب
my_alias default v10.22.0 v12.18.3 v14.8.0
إلغاء تثبيت nvm:
$ nvm uninstall
علامة التبويب
my_alias default v10.22.0 v12.18.3 v14.8.0
سيواجه nvm
بعض المشكلات إذا قمت بتعيين بعض الإعدادات غير الافتراضية. (انظر #606) من المعروف أن ما يلي يسبب مشكلات:
داخل ~/.npmrc
:
البادئة = "بعض/مسار"
متغيرات البيئة:
$NPM_CONFIG_PREFIX$PREFIX
إعدادات القشرة:
مجموعة -ه
من أجل توفير أفضل أداء (والتحسينات الأخرى)، سيقوم nvm بتنزيل وتثبيت الثنائيات المترجمة مسبقًا لـ Node (و npm) عند تشغيل nvm install X
. يقوم مشروع Node بتجميع واختبار واستضافة/توفير هذه الثنائيات المجمعة مسبقًا والتي تم تصميمها لتوزيعات Linux السائدة/التقليدية (مثل Debian وUbuntu وCentOS وRedHat وآخرون).
Alpine Linux، على عكس توزيعات Linux السائدة/التقليدية، يعتمد على BusyBox، وهو توزيع Linux مضغوط جدًا (~5 ميجابايت). يستخدم BusyBox (وبالتالي Alpine Linux) مكدس C/C++ مختلفًا لمعظم توزيعات Linux السائدة/التقليدية - musl. وهذا يجعل البرامج الثنائية المصممة لمثل هذه البرامج السائدة/التقليدية غير متوافقة مع Alpine Linux، وبالتالي لا يمكننا ببساطة nvm install X
على Alpine Linux ونتوقع أن يعمل الملف الثنائي الذي تم تنزيله بشكل صحيح - من المحتمل أن ترى أخطاء "...غير موجود" إذا كنت حاول ذلك.
توجد علامة -s
nvm install
والتي تطلب تنزيل Node source من nvm وتجميعها محليًا.
إذا كان تثبيت nvm على Alpine Linux لا يزال هو ما تريد أو تحتاج إلى القيام به، فيجب أن تكون قادرًا على تحقيق ذلك عن طريق تشغيل ما يلي من Alpine Linux Shell، اعتمادًا على الإصدار الذي تستخدمه:
apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils حليقة -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | سحق
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils حليقة -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | سحق
ملاحظة: يمكن لـ Alpine 3.5 فقط تثبيت إصدارات NodeJS حتى v6.9.5، ويمكن لـ Alpine 3.6 فقط تثبيت الإصدارات حتى v6.10.3، ويمكن لـ Alpine 3.7 تثبيت الإصدارات حتى v8.9.3، ويقوم Alpine 3.8 بتثبيت الإصدارات حتى v8.14.0، ويقوم Alpine 3.9 بتثبيت الإصدارات حتى v10.19.0، Alpine 3.10 يثبت الإصدارات حتى v10.24.1، Alpine 3.11 يثبت الإصدارات حتى v12.22.6، Alpine 3.12 يثبت الإصدارات حتى v12.22.12، Alpine 3.13 و3.14 يثبت الإصدارات حتى v14.20.0، Alpine 3.15 و 3.16 تثبيت الإصدارات حتى v16.16.0 ( هذه جميع الإصدارات الموجودة على الفرع الرئيسي ). يتطلب Alpine 3.5 - 3.12 الحزمة python2
لإنشاء NodeJS، نظرًا لأنها إصدارات أقدم للإنشاء. يتطلب Alpine 3.13+ python3
لبناء إصدارات NodeJS أحدث بنجاح، ولكن يمكنك استخدام python2
مع Alpine 3.13+ إذا كنت بحاجة إلى إنشاء إصدارات العقدة المدعومة في Alpine 3.5 - 3.15، فأنت بحاجة فقط إلى تحديد إصدار NodeJS الذي تحتاج إلى تثبيته فيه البرنامج النصي لتثبيت الحزمة.
لدى مشروع Node بعض الرغبة ولكن لا توجد خطط ملموسة (بسبب النفقات العامة للبناء والاختبار والدعم) لتقديم ثنائيات متوافقة مع جبال الألب.
كبديل محتمل، يحتوي @mhart (أحد المساهمين في Node) على بعض صور Docker لنظام Alpine Linux مع Node واختياريًا، npm، المثبتة مسبقًا.
لإزالة nvm
يدويًا، قم بتنفيذ ما يلي:
أولاً، استخدم nvm unload
لإزالة أمر nvm من جلسة العمل الطرفية وحذف دليل التثبيت:
$ nvm_dir="${NVM_DIR:-~/.nvm}"$ nvm unload $ rm -rf "$nvm_dir"
قم بتحرير ~/.bashrc
(أو أي تكوين آخر لموارد Shell) وقم بإزالة الأسطر أدناه:
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # يؤدي هذا إلى تحميل nvm[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
لتسهيل عمل التطوير والاختبار، لدينا ملف Dockerfile لاستخدام التطوير، والذي يعتمد على صورة Ubuntu 18.04 الأساسية، مُجهز بأدوات أساسية ومفيدة لتطوير nvm
، لبناء صورة عامل الإرساء للبيئة، قم بتشغيل أمر docker على جذر مستودع nvm
:
$ عامل ميناء بناء -t nvm-dev .
سيؤدي هذا إلى تجميع مستودع nvm الحالي الخاص بك مع بيئة التطوير المحددة مسبقًا لدينا في صورة عامل إرساء تسمى nvm-dev
، وبمجرد إنشائها بنجاح، تحقق من صحة صورتك عبر docker images
:
صور عامل ميناء $ حجم معرف صورة علامة المستودع الذي تم إنشاؤه nvm-dev الأحدث 9ca4c57a97d8 منذ 7 أيام 650 ميجابايت
إذا لم تتلق أي رسالة خطأ، فيمكنك الآن المشاركة بسهولة في:
$ docker run -h nvm-dev -it nvm-dev nvm@nvm-dev:~/.nvm$
يرجى ملاحظة أن إنشاء الصورة سيستغرق حوالي 8 دقائق وأن حجم الصورة سيكون حوالي 650 ميجابايت، لذا فهي غير مناسبة للاستخدام الإنتاجي.
لمزيد من المعلومات والوثائق حول عامل الإرساء، يرجى الرجوع إلى موقعه الرسمي:
https://www.docker.com/
https://docs.docker.com/
إذا حاولت تثبيت إصدار عقدة وفشل التثبيت، فتأكد من تشغيل nvm cache clear
لحذف تنزيلات العقدة المخزنة مؤقتًا، أو قد تحصل على خطأ مثل ما يلي:
حليقة: (33) يبدو أن خادم HTTP لا يدعم نطاقات البايت. لا يمكن الاستئناف.
أين sudo node
الخاصة بي؟ راجع رقم 43
بعد إصدار العقدة v0.8.6، يحاول nvm التثبيت من الحزم الثنائية. لكن في بعض الأنظمة، لا تعمل الحزم الثنائية الرسمية بسبب عدم توافق المكتبات المشتركة. في مثل هذه الحالات، استخدم خيار -s
لفرض التثبيت من المصدر:
تثبيت nvm -s 0.8.6
إذا كان إعداد الاسم المستعار default
لا ينشئ إصدار العقدة في قذائف جديدة (أي system
العائد nvm current
) ، تأكد من تعيين PATH
عقدة النظام قبل خط مصدر nvm.sh
في ملف تعريف shell الخاص بك (انظر #658)
إصدار عقدة NVM غير موجود في Vim Shell
إذا قمت بتعيين إصدار Node على إصدار آخر غير إصدار عقدة النظام nvm use 6.2.1
وفتح VIM و Run :!node -v
يجب أن ترى v6.2.1
إذا رأيت إصدار النظام الخاص بك v0.12.7
. تحتاج إلى الجري:
sudo chmod ugo-x/usr/libexec/path_helper
المزيد عن هذه القضية في dotphiles/dotzsh.
NVM غير متوافق مع خيار تكوين NPM "بادئة"
يمكن العثور على بعض الحلول لهذه القضية هنا
هناك حالة واحدة أخرى تسبب هذه المشكلة ، وهذا عدم تطابق بين مسار $HOME
والاسم الفعلي للدليل المنزلي للمستخدم .
يجب عليك التأكد من أن اسم دليل المستخدم في $HOME
واسم دليل المستخدم الذي تراها من تشغيل ls /Users/
يتم رسملة بنفس الطريقة (انظر هذه المشكلة).
لتغيير دليل المستخدم و/أو اسم الحساب اتبع التعليمات هنا
Homebrew يجعل دلائل ZSH غير آمنة
ZSH Compinit: الدلائل غير الآمنة ، Run Compaudit للقائمة. تجاهل الدلائل غير الآمنة واستمر [y] أو إحباط compinit [n]؟ ذ
يسبب Homebrew أدلة غير آمنة مثل /usr/local/share/zsh/site-functions
و /usr/local/share/zsh
. هذه ليست مشكلة nvm
- إنها مشكلة في البيرة. الرجوع هنا لبعض الحلول المتعلقة بهذه القضية.
Macs مع رقائق سيليكون التفاح
تمت إضافة الدعم التجريبي للهندسة المعمارية لرقاقة Silicon Apple في Node.js V15.3 وتم إضافة الدعم الكامل في V16.0. ولهذا السبب ، إذا حاولت تثبيت إصدارات قديمة من العقدة كالمعتاد ، فمن المحتمل أن تواجه إما أخطاء التجميع عند تثبيت أخطاء العقدة أو خارج الذاكرة أثناء تشغيل الكود.
لذا ، إذا كنت ترغب في تشغيل إصدار قبل V16.0 على جهاز Mac Apple Silicon ، فقد يكون من الأفضل تجميع العقدة التي تستهدف بنية Intel x86_64
حتى تتمكن Rosetta 2 من ترجمة تعليمات معالج x86_64
إلى تعليمات سيليكون Apple المستندة إلى ذراعها. هذا ما ستحتاج إلى القيام به:
قم بتثبيت Rosetta ، إذا لم تكن قد فعلت ذلك بالفعل
$ softwareupdate-install-rosetta
قد تتساءل ، "كيف ستعرف My Apple Silicon Mac استخدام Rosetta للحصول على إصدار من Node تم تجميعه لشريحة Intel؟". إذا كان القابل للتنفيذ يحتوي على تعليمات Intel فقط ، فسيستخدم MacOS تلقائيًا Rosetta لترجمة التعليمات.
افتح قذيفة تعمل باستخدام Rosetta
$ ARCH -X86_64 ZSH
ملاحظة: يمكن أيضًا تحقيق هذا الشيء نفسه من خلال العثور على تطبيق Terminal أو ITERM في Finder ، والنقر بزر الماوس الأيمن ، وتحديد "Get Info" ، ثم التحقق من المربع المسمى "Open use strosetta".
ملاحظة: تعمل هذه الجلسة الطرفية الآن في zsh
. إذا لم تكن zsh
هي القشرة التي تستخدمها عادةً ، فقد لا تكون nvm
source
تلقائيًا كما هو الحال بالنسبة لقذيفةك المعتادة من خلال dotfiles. إذا كان هذا هو الحال ، فتأكد من مصدر nvm
.
مصدر $ "$ {nvm_dir} /nvm.sh"
قم بتثبيت أي إصدار أقدم من Node الذي تهتم به. دعنا نستخدم 12.22.1 كمثال. سيؤدي ذلك إلى جلب رمز مصدر العقدة وتجميعه ، والذي سيستغرق عدة دقائق.
$ NVM Install V12.22.1-Shared-Zlib
ملاحظة: من المحتمل أن تكون فضوليًا-يتم تضمين- --shared-zlib
. هناك خطأ في الإصدارات الحديثة من برنامج clang
لشركة Apple. إذا تم تثبيت أحد هذه الإصدارات المكسورة على نظامك ، فمن المحتمل أن تنجح الخطوة أعلاه حتى إذا لم تقم --shared-zlib
. ومع ذلك ، في وقت لاحق ، عندما تحاول npm install
شيء باستخدام الإصدار القديم من Node.js ، سترى أخطاء incorrect data check
. إذا كنت ترغب في تجنب المتاعب الممكنة في التعامل مع هذا ، فقم بتضمين هذا العلم. لمزيد من التفاصيل ، راجع هذه المشكلة وهذا التعليق
الخروج إلى قذيفة الأم.
$ EXIT $ ARCH ذراع64
ملاحظة: إذا قمت بتحديد المربع المسمى "OPEN باستخدام Rosetta" بدلاً من تشغيل أمر CLI في الخطوة الثانية ، فسترى i386
هنا. ما لم يكن لديك سبب آخر لتحديد هذا المربع ، يمكنك إلغاء تحديده الآن.
تحقق للتأكد من أن الهندسة المعمارية صحيحة. x64
هو اختصار لـ x86_64
، وهو ما تريد رؤيته.
$ node -p process.arch x64
الآن يجب أن تكون قادرًا على استخدام العقدة كالمعتاد.
إذا واجهت هذا الخطأ على WSL-2:
curl -o- https://raw.githubusercontent.com/nvm-h-hnvm/v0.40.1/install.sh | سحق تلقى إجمالي ٪ ٪ ٪ xferd متوسط وقت السرعة وقت الوقت الحالي تحميل الحمل إجمالي السرعة اليسرى المستهلكة 0 0 0 0 0 0 0-::--0:00:09-:-:-0Curl: (6) لا يمكن حل المضيف: Raw.githubUserContent.com
قد يكون ذلك بسبب مكافحة الفيروسات أو VPN أو أسباب أخرى.
حيث يمكنك ping 8.8.8.8
بينما لا يمكنك ping google.com
يمكن حل هذا ببساطة عن طريق تشغيل هذا في دليل الجذر الخاص بك:
sudo rm /etc/resolv.conf sudo bash -c 'echo "sameerver 8.8.8.8"> /etc/resolv.conf'sudo bash -c' echo "[network]"> /etc/wsl.conf'sudo bash -c 'echo "generateolvconf = false" >> /etc/wsl.conf'sudo chattr +i /etc/resolv.conf
يقوم هذا بحذف ملف resolv.conf
الذي يتم إنشاؤه تلقائيًا عند تشغيل WSL ، ويقوم بإنشاء ملف جديد ويضع nameserver 8.8.8.8
، ثم يقوم بإنشاء ملف wsl.conf
ويضيف [network]
و generateResolveConf = false
للوقاية من الوصل التلقائي لذلك ملف.
يمكنك التحقق من محتويات الملف عن طريق التشغيل:
Cat /etc/resolv.conf
حاليًا ، فإن المشرف الوحيد هو @ljharb - المزيد من المشرفين مرحب بهم تمامًا ، ونأمل أن نضيف الناس إلى الفريق مع مرور الوقت. سيتم إعادة تقييم الحوكمة مع تطور المشروع.
يتم دعم أحدث إصدار (v0.40.1 في هذا الوقت).
إذا لم تتمكن من التحديث إلى أحدث إصدار من nvm
، فإن شركائنا يوفرون إصلاحات أمنية تجارية لجميع الإصدارات غير المدعومة:
Herodevs الدعم لا تنتهي أبدا
انظر الترخيص.
حقوق الطبع والنشر OpenJS Foundation و nvm
المساهمين. جميع الحقوق محفوظة. سجلت مؤسسة OpenJS علامات تجارية وتستخدم العلامات التجارية. للحصول على قائمة العلامات التجارية لمؤسسة OpenJS ، يرجى الاطلاع على قائمة سياسة العلامات التجارية وقائمة العلامات التجارية. Node.js هي علامة تجارية لـ Joyent ، Inc. وتستخدم بإذنها. العلامات التجارية والشعارات غير المشار إليها في قائمة العلامات التجارية لمؤسسة OpenJS هي علامات تجارية أو علامات تجارية مسجلة لأصحابها المعنيين. استخدامها لا يعني أي انتماء مع أو تأييد من قبلهم.
مؤسسة OpenJS | شروط الاستخدام | سياسة الخصوصية | OpenJS Foundation Lylaws | سياسة العلامات التجارية | قائمة العلامات التجارية | سياسة ملفات تعريف الارتباط