أكمل هذا النموذج لتقديم أفكارك والاشتراك للحصول على تحديثات التقدم.
سيتم أيضًا نشر التحديثات على صفحة برنامج المؤلف على LinkedIn.
أوصى Microsoft/npm/Google بمدير إصدار Node.js لنظام التشغيل Windows .
يعد nvm الأصلي مشروعًا منفصلاً تمامًا لنظام التشغيل Mac/Linux فقط. يستخدم هذا المشروع فلسفة مختلفة تمامًا وليس مجرد نسخة من nvm. التفاصيل مدرجة في لماذا مدير إصدار آخر؟ وما الفرق الكبير؟.
لا تستطيع الكفالة؟ فكر في ترشيح @coreybutler لنجم Github. | |||
الوقوع في القضايا؟ راجع المشكلات الشائعة في ويكي.
البحث عن ردود الفعل:نحن نعمل على Runtime (rt)، خليفة NVM For Windows. يرجى المساهمة بتخصيص دقيقة لملء هذا النموذج. شكرًا لك! |
إدارة عمليات التثبيت المتعددة لـnode.js على جهاز كمبيوتر يعمل بنظام Windows.
tl;dr مشابه (ليس مطابقًا) لـ nvm، لكنه مخصص لنظام التشغيل Windows. لديه المثبت. تحميل الآن!
لقد كان هذا دائمًا مدير إصدار العقدة، وليس مدير io.js، لذلك لا يوجد دعم خلفي لـ io.js. العقدة 4+ مدعومة. تذكر أنه عند تشغيل nvm install أو nvm use ، عادةً ما يتطلب Windows حقوقًا إدارية (لإنشاء روابط رمزية). لتثبيت أحدث إصدار من Node.js، قم بتشغيل nvm install latest . لتثبيت أحدث إصدار ثابت، قم بتشغيل nvm install lts .
هناك حالات يمكن أن تكون فيها القدرة على التبديل بين الإصدارات المختلفة من Node.js مفيدة جدًا. على سبيل المثال، إذا كنت تريد اختبار وحدة نمطية تقوم بتطويرها باستخدام أحدث إصدار من أحدث إصدار دون إلغاء تثبيت الإصدار الثابت من العقدة، فيمكن أن تساعدك هذه الأداة المساعدة.
إن أبسط طريقة (موصى بها) لتشغيل NVM لنظام التشغيل Windows بشكل صحيح هي إلغاء تثبيت أي تثبيت سابق للعقدة قبل تثبيت NVM لنظام التشغيل Windows. إنه يتجنب جميع المزالق المذكورة أدناه. لكن؛ قد لا ترغب في تثبيت Node الخاص بك إذا قمت بتخصيصه بشكل كبير. يمكن أن يتولى NVM لنظام التشغيل Windows إدارة التثبيت الحالي، ولكن هناك فروق دقيقة في هذا (تعتمد كليًا على أذونات المستخدم الذي يقوم بتشغيل التثبيت). إذا كان لديك حساب إداري، فمن الآمن نسبيًا تثبيت NVM لنظام التشغيل Windows قبل إلغاء تثبيت إصدار Node الأصلي. إذا كنت تعمل في بيئة مغلقة، مثل بيئة Active Directory الخاصة بالشركة حيث يتم التحكم في عمليات التثبيت/إزالة التثبيت من خلال سياسة المجموعة، فيجب أن تفكر حقًا في إزالة الإصدار الأصلي من Node قبل تثبيت NVM4W.
مشاكل الأذونات لأسباب أمنية، لن يسمح Windows لتطبيق من بائع واحد "بإلغاء تثبيت" تطبيق من بائع مختلف. سيحاول مُثبِّت NVM4W الرسمي تولي إدارة التثبيت الحالي لـ Node.، لكنه لا يمكنه فعليًا إلغاء تثبيت إصدار Node.js الأصلي. للتغلب على هذه المشكلة، يحاول برنامج تثبيت NVM لنظام التشغيل Windows نسخ ملفات تثبيت Node.js الأصلية إلى جذر NVM. يتضمن ذلك وحدات وتكوينات npm العالمية. بمجرد اكتمال هذه العملية، يمكن إلغاء تثبيت Node.js الأصلي دون فقدان البيانات.
مشاكل تثبيت PATH إذا حاولت تكوين NVM_SYMLINK لاستخدام دليل موجود (مثل C:Program Filesnodejs )، فسوف يفشل لأنه لا يمكن للارتباط الرمزي الكتابة فوق دليل فعلي. هذه ليست مشكلة إذا اخترت مسار ارتباط رمزي مختلف (مثل C:nvmnode ).
تعارضات PATH إذا لم تقم بإلغاء تثبيت الإصدار الأصلي، فقد يبدو أن تشغيل nvm use لا يفعل شيئًا على الإطلاق. سيؤدي تشغيل node -v دائمًا إلى إظهار إصدار التثبيت الأصلي. ويرجع ذلك إلى تعارض PATH الذي يظهر عند تثبيت التطبيق نفسه عدة مرات. في NVM4W 1.1.11+، قم بتشغيل nvm debug لتحديد ما إذا كان لديك تعارض PATH .
من أجل البساطة، نوصي بإلغاء تثبيت أي إصدارات موجودة من Node.js قبل استخدام NVM لنظام التشغيل Windows. احذف أي أدلة تثبيت Node.js موجودة (على سبيل المثال، %ProgramFiles%nodejs ) التي قد تبقى. لن يحل الارتباط الرمزي الذي تم إنشاؤه بواسطة NVM محل دليل التثبيت الموجود (حتى الفارغ).
؟ هل تريد النسخ الاحتياطي لأي تكوين npmrc عالمي ؟ (على سبيل المثال %AppData%npmetcnpmrc )
وبدلاً من ذلك، انسخ الإعدادات إلى تكوين المستخدم %UserProfile%.npmrc . احذف موقع تثبيت npm الموجود (على سبيل المثال %AppData%npm ) لمنع تعارضات الوحدة النمطية العامة.
استخدم أحدث برنامج تثبيت (يأتي مع برنامج إلغاء التثبيت). وبدلاً من ذلك، اتبع دليل التثبيت اليدوي.
إذا لم يبدو أن NVM4W يعمل فورًا بعد التثبيت، فأعد تشغيل الجهاز الطرفي/powershell (وليس الكمبيوتر بالكامل).
بعد التثبيت، يجب إعادة تثبيت الأدوات المساعدة العامة (مثل الغزل) لكل إصدار مثبت من العقدة:
nvm use 14.0.0 npm install -g yarn nvm use 12.0.1 npm install -g yarn
اعتبارًا من الإصدار 1.1.8، توجد أداة ترقية تعمل على أتمتة عملية الترقية.
لترقية nvm-windows ، قم بتشغيل المثبت الجديد. سيقوم بالكتابة بأمان فوق الملفات التي يحتاج إلى تحديثها دون لمس عمليات تثبيت Node.js الخاصة بك. تأكد من استخدام نفس مجلد التثبيت والارتباط الرمزي. إذا قمت بالتثبيت في الأصل على المواقع الافتراضية، فستحتاج فقط إلى النقر فوق "التالي" في كل نافذة حتى تنتهي.
يعمل nvm-windows في Admin Shell . ستحتاج إلى تشغيل powershell أو Command Prompt كمسؤول لاستخدام nvm-windows
NVM لنظام التشغيل Windows هي أداة لسطر الأوامر. ما عليك سوى كتابة nvm في وحدة التحكم للحصول على المساعدة. الأوامر الأساسية هي:
nvm arch [32|64] : إظهار ما إذا كانت العقدة تعمل في وضع 32 أو 64 بت. حدد 32 أو 64 لتجاوز البنية الافتراضية.
nvm debug : تحقق من عملية NVM4W بحثًا عن المشكلات المعروفة.
nvm current : عرض الإصدار النشط.
nvm install <version> [arch] : يمكن أن يكون الإصدار إصدارًا محددًا، "أحدث" لأحدث إصدار حالي، أو "lts" لأحدث إصدار LTS. حدد بشكل اختياري ما إذا كنت تريد تثبيت الإصدار 32 أو 64 بت (الإعدادات الافتراضية لقوس النظام). اضبط [arch] على "الكل" لتثبيت الإصدارات 32 و64 بت. أضف --insecure إلى نهاية هذا الأمر لتجاوز التحقق من صحة SSL لخادم التنزيل عن بعد.
nvm list [available] : قم بإدراج عمليات تثبيت Node.js. اكتب available في النهاية لإظهار قائمة الإصدارات المتاحة للتنزيل.
nvm on : تمكين إدارة إصدار Node.js.
nvm off : تعطيل إدارة إصدار Node.js (لا يؤدي إلى إلغاء تثبيت أي شيء).
nvm proxy [url] : قم بتعيين وكيل لاستخدامه في التنزيلات. اترك [url] فارغًا لرؤية الوكيل الحالي. اضبط [url] على "لا شيء" لإزالة الوكيل.
nvm uninstall <version> : إلغاء تثبيت إصدار محدد.
nvm use <version> [arch] : قم بالتبديل لاستخدام الإصدار المحدد. استخدم بشكل اختياري latest أو lts أو newest . newest هو أحدث إصدار مثبت . اختياريًا، حدد بنية 32/64 بت. سيستمر nvm use <arch> في استخدام الإصدار المحدد، ولكن قم بالتبديل إلى وضع 32/64 بت. للحصول على معلومات حول use في دليل محدد (أو استخدام .nvmrc )، يرجى الرجوع إلى الإصدار رقم 16.
nvm root <path> : قم بتعيين الدليل حيث يجب أن يقوم nvm بتخزين إصدارات مختلفة من Node.js. إذا لم يتم تعيين <path> ، فسيتم عرض الجذر الحالي.
nvm version : يعرض الإصدار الحالي قيد التشغيل من NVM لنظام التشغيل Windows.
nvm node_mirror <node_mirror_url> : قم بتعيين مرآة العقدة. يمكن للأشخاص في الصين استخدام https://npmmirror.com/mirrors/node/
nvm npm_mirror <npm_mirror_url> : اضبط مرآة npm. يمكن للأشخاص في الصين استخدام https://npmmirror.com/mirrors/npm/
يرجى ملاحظة أن أي وحدات npm عامة قد تكون قمت بتثبيتها لا تتم مشاركتها بين الإصدارات المختلفة من Node.js التي قمت بتثبيتها. بالإضافة إلى ذلك، قد لا تكون بعض وحدات npm مدعومة في إصدار العقدة الذي تستخدمه، لذا كن على دراية ببيئتك أثناء عملك.
أبلغ المستخدمون عن بعض المشكلات عند استخدام برامج مكافحة الفيروسات، وتحديدًا McAfee. يبدو أن برنامج مكافحة الفيروسات يتلاعب بالوصول إلى محرك VBScript. راجع العدد رقم 133 لمزيد من التفاصيل والحل.
الإصدار 1.1.8 ليس موقعًا بالكود ، ولكن جميع الإصدارات الأخرى موقعة بواسطة Ecor Ventures LLC/Author.io. من المفترض أن يساعد هذا في منع النتائج الإيجابية الخاطئة مع معظم برامج مكافحة الفيروسات.
الإصدار 1.1.8+ لم يتم توقيعه بالرمز بسبب انتهاء صلاحية الشهادة (راجع ملاحظات الإصدار للتعرف على الأسباب). الإصدار 1.1.9 تم توقيعه بالرمز بفضل ajyong، الذي رعى الشهادة الجديدة.
تلدر؛ npm i -g yarn
راجع الويكي للحصول على التفاصيل.
قم بالتثبيت من http://golang.org
تنزيل المصدر / Git Clone the repo
قم بتغيير GOARCH إلى amd64 في build.bat إذا كنت ترغب في إنشاء ملف قابل للتنفيذ 64 بت
قم بتشغيل موجه أوامر Windows وقم بتغيير الدليل إلى دليل المشروع
نفذ الأمر go get github.com/blang/semver
نفذ الأمر go get github.com/olekukonko/tablewriter
تنفيذ build.bat
تحقق من دليل dist لبرنامج الإعداد الذي تم إنشاؤه.
هناك العديد من مديري الإصدارات لـnode.js. أدوات مثل nvm وn تعمل فقط على نظامي التشغيل Mac OSX وLinux. هل يتم ترك مستخدمي Windows في البرد؟ تم تصميم كلا من nvmw وnodist لنظام التشغيل Windows. فلماذا مدير إصدار آخر لنظام التشغيل Windows؟
تعتمد بنية معظم مديري إصدارات العقد لنظام التشغيل Windows على ملفات .bat ، والتي تقوم ببعض الحيل الذكية لتعيين متغيرات البيئة أو محاكاتها. يستخدم البعض منهم العقدة نفسها (بمجرد تنزيلها)، وهو أمر مثير للإعجاب، ولكنه عرضة للمشاكل. حول العقدة 0.10.30، تغيرت بنية التثبيت قليلاً، مما تسبب في توقف بعض هذه العناصر عن العمل مع أي شيء جديد.
بالإضافة إلى ذلك، يواجه بعض المستخدمين صعوبة في تثبيت هذه الوحدات نظرًا لأنها تتطلب معرفة أكثر بقليل ببنية تثبيت العقدة. أعتقد أنه إذا كان من الأسهل على الأشخاص التبديل بين الإصدارات، فقد يستغرق الأشخاص وقتًا لاختبار التعليمات البرمجية الخاصة بهم على الإصدارات السابقة والمستقبلية... وهي مجرد ممارسة جيدة.
أولاً وقبل كل شيء، هذا الإصدار من nvm لا يعتمد على العقدة. إنه مكتوب بلغة Go، وهو أسلوب أكثر تنظيمًا من اختراق ملف .bat محدود. لا يعتمد على وجود تثبيت العقدة الموجودة. يوفر Go القدرة على إنشاء إصدار Mac/Linux على نفس قاعدة التعليمات البرمجية. في الواقع، هذا يجري بالفعل.
آلية التحكم مختلفة تمامًا أيضًا. هناك طريقتان عامتان لدعم عمليات تثبيت العقد المتعددة مع إمكانيات التبديل السريع. الأول هو تعديل PATH للنظام في أي وقت تقوم فيه بتبديل الإصدارات، أو تجاوزه باستخدام ملف .bat لتقليد العقدة القابلة للتنفيذ وإعادة التوجيه وفقًا لذلك. لقد بدا هذا دائمًا مبتذلاً بعض الشيء بالنسبة لي، وهناك بعض المراوغات نتيجة لهذا التنفيذ.
الخيار الثاني هو استخدام رابط رمزي. يتطلب هذا المفهوم وضع الرابط الرمزي في نظام PATH ، ثم تحديث هدفه إلى دليل تثبيت العقدة الذي تريد استخدامه. يعد هذا أسلوبًا مباشرًا، ويبدو أنه ما يوصي به الناس.... حتى يدركوا حجم الارتباطات الرمزية المؤلمة الموجودة على Windows. ولهذا السبب لم يحدث ذلك من قبل.
من أجل إنشاء/تعديل رابط رمزي، يجب أن تعمل كمسؤول، ويجب أن تتغلب على Windows UAC (تلك المطالبة المزعجة). لحسن الحظ، هذا هو التحدي الذي قمت بحله بالفعل باستخدام بعض البرامج النصية المساعدة في نوافذ العقدة. ونتيجة لذلك، يحتفظ NVM لنظام التشغيل Windows برابط رمزي واحد يتم وضعه في PATH للنظام أثناء التثبيت فقط. يعد التبديل إلى إصدارات مختلفة من العقدة بمثابة تبديل هدف الارتباط الرمزي. ونتيجة لذلك، لا تتطلب منك هذه الأداة تشغيل nvm use xxx في كل مرة تفتح فيها نافذة وحدة التحكم. عند تشغيل nvm use xxx ، يتم تحديث الإصدار النشط من العقدة تلقائيًا عبر جميع نوافذ وحدة التحكم المفتوحة. ويستمر أيضًا بين عمليات إعادة تشغيل النظام، لذلك لا تحتاج إلى استخدام nvm إلا عندما تريد إجراء تغيير.
يأتي NVM لنظام التشغيل Windows مزودًا ببرنامج تثبيت، وهو نتيجة ثانوية لعملي على Fenix Web Server.
بشكل عام، يجمع هذا المشروع بعض الأفكار، وبعض القطع القوية من الوحدات الأخرى، ودعم الإصدارات الأحدث من العقدة.
يتعرف NVM لنظام التشغيل Windows على الإصدارات "الأحدث" باستخدام القائمة المقدمة من مشروع Node. الإصدار 1.1.1+ استخدم هذه القائمة. قبل ظهور هذه القائمة، كنت أقوم بجمع الإصدارات وتقديمها كخلاصة بيانات مستقلة. تم استخدام هذه القائمة في الإصدارات 1.1.0 والإصدارات السابقة، ولكن تم إهمالها الآن.
كنت في حاجة إليها، واضح وبسيط. بالإضافة إلى ذلك، من الواضح أن دعم الإصدارات المتعددة لا يصل إلى العقدة الأساسية. وكان أيضًا ذريعة للعب مع Go.
لقد اخترت Go لأنه متعدد المنصات، وشعرت أنه أقل حملًا من Java، وكان موجودًا لفترة أطول مما يعتقده معظم الناس. بالإضافة إلى ذلك، أردت تجربتها. لقد سُئلت لماذا لم أكتبها باستخدام Node. إن محاولة كتابة أداة باستخدام الأداة التي تحاول تثبيتها لا معنى لها بالنسبة لي. ونتيجة لذلك، كانت متطلبات مشروعي بسيطة... وهو أمر لا ينطبق على Node. سوف تستمر العقدة في التطور والتغيير. إذا كنت بحاجة إلى تذكير بذلك، فتذكر io.js، وAyo، وجميع التغييرات الفاصلة بين 4.xx و6.xx، والتحول إلى وحدات ES في 12+. التغيير أمر لا مفر منه في عالم البرمجيات. جافا سكريبت ديناميكية للغاية.
شكرًا لكل من قدم مشكلات داخل وخارج Github، وقدم اقتراحات، وساعد بشكل عام في جعل هذا المشروع أفضل. شكر خاص ل
@vkbansal، الذي قدم تعليقات مبكرة مهمة خلال الإصدارات المبكرة.
@rainabba وsullivanpt لدمج دعم Node v4.
@shadow الذي حل مشكلة الهروب من المساحة الطويلة في أسماء المسارات (#355).
Ajyong الذي رعى شهادة توقيع الكود في أواخر عام 2021.