Nvm-windows: فشل تثبيت nvm مع "اسم الملف أو الامتداد طويل جدًا"

تم إنشاؤها على ٢١ يوليو ٢٠١٧  ·  25تعليقات  ·  مصدر: coreybutler/nvm-windows

بيئتي

ويندوز 8

أنا أستخدم إصدار NVM4W:

1.1.5

مشكلتي متعلقة بـ (حدد فقط تلك التي تنطبق):

  • [] settings.txt
  • [] دعم الوكيل (هل جربت الإصدار 1.1.0+؟)
  • [] دعم 32 أو 64 بت (هل جربت الإصدار 1.1.3+؟)
  • [] شخصية تهرب (هل جربت الإصدار 1.1.6+؟)
  • [x] بيئة غلاف قياسية (طرفية / بوويرشيل)
  • [] بيئة غلاف غير قياسية (Cmder ، Hyper ، Cygwin ، git)

سلوك متوقع

تثبيت إصدار العقدة 8.2.1

السلوك الفعلي

فشل مع ظهور الخطأ The filename or extension is too long

خطوات إعادة إظهار المشكلة:

λ nvm install 8.2.1
Downloading node.js version 8.2.1 (64-bit)...
Complete
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...2017/07/21 09:02:31 mkdir C:\Users\suhas.karanth.RB\AppData\Roaming\nvm\temp\nvm-npm\npm-5.3.0\node_modules\libnpx\node_modules\yargs\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\node_modules\error-ex\node_modules\is-arrayish: The filename or extension is too long.

بينما هذه _هي مشكلة ، أشك في وجود طريقة مباشرة لإصلاحها. ومع ذلك ، فإن إنشاء هذه المشكلة لمشاركة كيفية التغلب عليها وكيف يمكن تجنبها.

لقد قمت بتثبيت أحدث إصدار ما قبل الإصدار من nvm ( v1.1.6 ) ولكن هذه المرة قمت بتثبيته على C:\nvm\ للحفاظ على طول المسار. تمكنت من تثبيت العقدة بنجاح v8.2.1 بعد ذلك. هل تعتقد أنه من المنطقي تثبيت nvm على هذا المسار افتراضيًا؟

upstream-bug

التعليق الأكثر فائدة

إذا قمت بتثبيت أحدث إصدار (1.1.6) وبدلاً من C:/Users/<username>/AppData/Roaming/nvm حددت C:/nvm كمجلد التثبيت ، فيجب أن يعمل. لم أواجه مشكلة في تثبيت 8.4.0 :)

بالنسبة لي ، استخدام nvm root لتغيير مسار nvm لم ينجح ، تلقيت رسائل خطأ غريبة. لم ينسخ nvm <commands> ثم توقف حتى node عن العمل.

استنساخ يدويا npm كماmichaelkdh اقترح أيضا لم عمل، ويبدو hackish مقارنة تثبيت نظيف

ال 25 كومينتر

هناك شيء ما معطل بخصوص هذا التثبيت ... هل لديك نسختان من NVM مثبتتان في نفس الوقت بأي فرصة؟

قد يكون الوقت قد فات في هذه المرحلة ، ولكن ماذا ينتج echo %NVM_SYMLINK% ؟

لا. لم يكن لدي إصداران من NVM مثبتين في وقت حدوث الخطأ.

قد يكون الوقت قد فات في هذه المرحلة ، ولكن ماذا ينتج echo %NVM_SYMLINK% ؟

في الواقع ، لم يفت الأوان. كان لدي محطة مفتوحة لا تزال بها البيئة القديمة.

λ where nvm
C:\Users\suhas.karanth.RB\AppData\Roaming\nvm\nvm.exe

λ echo %NVM_SYMLINK%
C:\Program Files\nodejs

بالإضافة إلى ذلك ، قمت بتثبيت واستخدام إصدارات متعددة من العقدة من خلال NVM قبل:

λ nvm list

  * 8.1.2 (Currently using 64-bit executable)
    8.1.1
    8.1.0
    8.0.0
    6.10.3
    6.10.0
    5.12.0
    4.8.0
    4.2.6

أواجه نفس المشكلة.
نظام التشغيل Windows 10
قذيفة Cmder
NVM 1.1.5

يحدث هذا مع العقدة 8.2.0 و 8.2.1
8.1.4 و 8.1.3 يعملان بشكل جيد.

$ nvm install 8.2.0
Downloading node.js version 8.2.0 (64-bit)...
Complete
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...2017/07/22 00:15:41 mkdir C:\Users\Christopher\AppData\Roaming\nvm\temp\nvm-npm\npm-5.3.0\node_modules\libnpx\node_modules\yargs\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\node_modules\error-ex\node_modules\is-arrayish: The filename or extension is too long.

أتساءل عما إذا كان ينبغي علينا تناول هذا الأمر مع npm upstream ..
clowenhg إذا قمت بتثبيت nvm مباشرة على C:\nvm ، فسيتم حل المشكلة ولكن لن يتم التعرف على تثبيتات العقدة الحالية. لقد قمت بنقل مجلدات العقد المتعددة إلى C:\nvm وتمكنت من رؤيتها مدرجة ولكن لم تتح لي الفرصة لاختبار أي منها. بفضل تحديث windows وحلقة التمهيد.

من المحتمل أن ينجح ذلك ، ولكن يبدو وكأنه عمل مؤقت حتى يريد الشيء التالي التعمق في دليل آخر. حسنًا ، قد يكون طرح هذا الأمر باعتباره مشكلة تتعلق بـ NPM بمثابة مكالمة جيدة.

أرى أن الرقم 8 ليس في إصدار LTS النهائي بعد ، فأنا أعود إلى 8.1.4 في الوقت الحالي.

يبدو أن هناك عددًا من المشكلات المتعلقة بالإصدارات الجديدة من npm ، وتحديدًا تلك التي تتضمن دعم npx. لقد أضفت دعمًا لـ npx في الفرع الرئيسي وسأصدره عندما يصبح 1.1.6 رسميًا (قيد الاختبار حاليًا). ومع ذلك؛ حتى في هذا الفرع ، لا يزال npx يفشل (يفشل أيضًا من خلال برنامج تثبيت Node windows المستقل بدون NVM4W).

أعتقد أن هذه مشكلة npm ، وليست مشكلة NVM4W. أنا أغلق المشكلة وأضع علامة عليها كقضية أولية.

coreybutler توضيح صغير إذا كنت لا تمانع. لماذا كان عليك إجراء تغييرات لدعم npx؟ حتى مع العقدة v8.1 ، كانت npx متاحة وقابلة للاستخدام ، على الرغم من وجود أخطاء بها على النوافذ. لكن لا ينبغي أن تفعل nvm أي شيء من أجل هذا.

لم يتم شحن العقدة 8.1 مع دعم npx. إذا كان لديك الإصدار 8.1 ، فيجب تشغيل npm install -g npm مكان ما على طول الخط لترقية npm. تمت إضافة الأمر npx في npm v5.3.0 ، وكان الإصدار الأول من Node الذي يتم شحنه باستخدام npm 5.3.0 هو 8.2.1. للحصول على تفاصيل محددة ، انظر # 288.

نعم .. ربما أنت على حق. أتذكر ترقية npm.

لدي نفس المشكلة ، الحل الذي أملكه هو:

  1. قم بتثبيت 8.2.1 ، والذي سيفشل ، لا بأس بذلك.
  2. قم بتثبيت الإصدار 6.11.2 وانسخ ملفين (npm و npm.cmd) من /c:/ [اسم المستخدم] / AppData / Roaming / nvm / v6.11.2 إلى المجلد v8.2.1
  3. في المجلد v8.2.1 ، قم بعمل git clone https://github.com/npm/npm.git

إذًا يجب أن تكون جيدًا

شكرا @ michaelkdh إنه يعمل بالنسبة لي. 👍
كان الشيء المختلف قليلاً هو أنه عندما قمت باستنساخ "npm.git" ، تم إنشاء مجلد "npm". واضطررت إلى نقل مجلد "npm" إلى "node_modules".

@ gblue1223 نفس الشيء ، فقط بحاجة إلى npm في المكان. في صحتك،

coreybutler وفقًا للمشكلة التي قمت بربطها ، يمكنك تجاوز المسارات المراد التثبيت عليها.

إذا قمت بتثبيت أحدث إصدار (1.1.6) وبدلاً من C:/Users/<username>/AppData/Roaming/nvm حددت C:/nvm كمجلد التثبيت ، فيجب أن يعمل. لم أواجه مشكلة في تثبيت 8.4.0 :)

بالنسبة لي ، استخدام nvm root لتغيير مسار nvm لم ينجح ، تلقيت رسائل خطأ غريبة. لم ينسخ nvm <commands> ثم توقف حتى node عن العمل.

استنساخ يدويا npm كماmichaelkdh اقترح أيضا لم عمل، ويبدو hackish مقارنة تثبيت نظيف

@ peterbakonyi05 لا يزال من الصعب إعادة تعريف مجلد nvm فقط لتثبيته أيضًا.

Sieabah أوافق ، المشكلة برمتها غريبة. ومع ذلك ، أعتقد أنه لا يزال أفضل من الحلين المقترحين الآخرين (في الواقع لم يعمل أي منهما معي)

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

لقد لاحظت أيضًا أن الكثير من الأشخاص يقومون بالنسخ / اللصق من أجهزتهم الطرفية ... واستمر ظهور بناء الجملة مثل /c/whatever ، lambdas ، إلخ ... وكلها تشير إلى أن الأشخاص يستخدمون أشياء مثل Cygwin ، git shells ، cmder ، إلخ. يرجى ملاحظة أن هذه القذائف _ لا تلتزم دائمًا بمعايير نظام التشغيل Windows_ ، وأنها _do_ تؤثر على كيفية قراءة المسارات. هناك العديد من المشكلات الأخرى التي تشير إلى هذا ، لذا جرب كل شيء في محطة طرفية قياسية قبل النشر للتأكد من أنها مشكلة NVM4W وليست مشكلة في Terminal.

coreybutler ها أنت

C: \ Users \ Christopher> تثبيت nvm 8.4.0
جارٍ تنزيل الإصدار 8.4.0 من node.js (64 بت) ...
اكتمال
إنشاء C: \ Users \ Christopher \ AppDataRoamingnvm \ temp

تحميل الإصدار 5.3.0 من npm ... أكمل
تثبيت npm v5.3.0 ... 2017/09/05 16:50:14 mkdir C: \ Users \ Christopher \ AppDataRoamingnvm \ tempnvm-npmnpm-5.3.0node_modules \ libnpxnode_modules \ yargsnode_modules \ read-pkg-upnode_modules_kg load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish: اسم الملف أو الامتداد طويل جدًا.

ج: \ المستخدمون \ كريستوفر> حيث nvm
C: \ Users \ Christopher \ AppDataRoamingnvmnvm.exe

C: \ Users \ Christopher> تثبيت nvm 8.4.0
جارٍ تنزيل الإصدار 8.4.0 من node.js (64 بت) ...
اكتمال
إنشاء C: \ Users \ Christopher \ AppDataRoamingnvm \ temp

تحميل الإصدار 5.3.0 من npm ... أكمل
تثبيت npm v5.3.0 ... 2017/09/05 16:50:14 mkdir C: \ Users \ Christopher \ AppDataRoamingnvm \ tempnvm-npmnpm-5.3.0node_modules \ libnpxnode_modules \ yargsnode_modules \ read-pkg-upnode_modules_kg load-json-filenode_modules \ parse-jsonnode_modules \ error-exnode_modules \ is-arrayish: اسم الملف أو الامتداد طويل جدًا.

ج: \ المستخدمون \ كريستوفر> حيث العقدة
C: \ Program Filesnodejsnode.exe

ج: \ المستخدمون \ كريستوفر> حيث npm
C: \ Program Filesnodejsnpm
C: \ Program Filesnodejsnpm.cmd

أنا أيضًا على الإصدار 1.1.5 من nvm إذا كان ذلك يحدث فرقًا (ربما أنت تستخدم 1.1.6؟)

أستطيع أن أؤكد أن الترقية إلى 1.1.6 تعمل على إصلاح هذه المشكلة. من المنطقي أنه يبدو أن بعض إدارة مسار الملفات تستخدم الآن مكتبات Go الأصلية.

قد يعني ذلك أيضًا أن خطأ filepath كان ضمن nvm بدلاً من npm نفسه. قد يرغب أي خطأ تم تسجيله في npm في إعادة النظر فيه.

شكرا @ computerquip-streamlabs. حصلت على هذه المشكلة وحللت عن طريق ترقية nvm مع ،

scoop install [email protected]

وبعد ذلك يمكنني تثبيت العقدة 8.7.0 باستخدام nvm.

تثبيت nvm 1.1.6 ، إصلاح الخلل في "تثبيت npm: اسم الملف أو الامتداد طويل جدًا"

من: C: \ Users \ [username] \ AppDataRoamingnvm

  1. تغيير ملف settings.txt
root: C:\nvm 
path: C:\Program Files\nodejs 
arch: 64 
proxy: none
  1. انسخ ملفين elevate.cmd و elevate.vbs إلى: C: nvm

ثم عملت معي!

يتم إعادة الفتح نظرًا لأن العديد من المستخدمين لا يزالون يواجهون هذا.

FWIW ، أنا أقوم بتشغيل Windows 10 ، لقد قمت بتمكين مسارات الملفات الطويلة ، ولكن ما زلت لا أستطيع تثبيت إصدارات العقدة فوق 6.x ... بسبب مشكلة مسار الملف الطويل في npm v 5.6 ، الترقية إلى nvm 1.1.6 أصلح المشكلة بالنسبة لي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

snerte picture snerte  ·  5تعليقات

keylowgee picture keylowgee  ·  6تعليقات

David263 picture David263  ·  3تعليقات

AllainPL picture AllainPL  ·  7تعليقات

fredericrous picture fredericrous  ·  3تعليقات