Cli: [BUG] يزيل "npm install -g npm" الأمر "npm"

تم إنشاؤها على ١٨ ديسمبر ٢٠١٩  ·  19تعليقات  ·  مصدر: npm/cli

ماذا / لماذا

تمت إزالة الأمر npm بعد تشغيل npm install -g npm .

متى



  • 2019/12/18

  • لا أتذكر بالضبط متى نجحت في تشغيل هذا الأمر ولكن قبل أسبوع على الأقل.

أين



  • npm / cli

كيف

السلوك الحالي


هذا هو السجل:

~
% brew install node
==> Downloading https://homebrew.bintray.com/bottles/node-13.3.0_1.catalina.bottle.tar.gz
Already downloaded: /Users/manabu/Library/Caches/Homebrew/downloads/8a482358c0487b3ffeeebf4d1f3b3ca825018f6318ecdd6368fd0a6f45e0bea1--node-13.3.0_1.catalina.bottle.tar.gz
==> Pouring node-13.3.0_1.catalina.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.3.0_1: 4,663 files, 59MB

~
% npm install -g npm
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../../../lib/node_modules/npm/man/man1/npm-access.1
npm ERR! dest /usr/local/share/man/man1/npm-access.1
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../../../lib/node_modules/npm/man/man1/npm-access.1' -> '/usr/local/share/man/man1/npm-access.1'
npm ERR! File exists: /usr/local/share/man/man1/npm-access.1
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/manabu/.npm/_logs/2019-12-18T07_51_00_280Z-debug.log

لقد أكدت أن هذا حدث مرة أخرى عندما قمت بتشغيل brew reinstall node .

في الواقع كما قال المخرج ، قمت بتشغيله بنجاح باستخدام --force لكنني أعتقد أن مجرد عرض هذه السجلات أفضل من إزالة الأمر npm .

تحرير (2020/01/11):

في الواقع كما قال المخرج ، قمت بتشغيله بنجاح باستخدام --force

وبشكل أكثر تحديدًا ، قمت بهذه الخطوات:

  1. استعادة الأمر npm الذي تمت إزالته بواسطة npm install -g npm

    • نظرًا لأنني أستخدم Homebrew لإدارة Node.js ، قمت بتشغيل brew reinstall node لاستعادته

  2. قم بتشغيل npm install -g --force npm كما هو مذكور

خطوات التكاثر

  • غير متوفر

سلوك متوقع

  • تم تحديث npm بنجاح

منظمة الصحة العالمية



  • غير متوفر

المراجع



  • غير متوفر

Bug

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

تلخيص الحل هو:

brew reinstall node
npm i -g --force npm

ال 19 كومينتر

المتعلقة بتغيير isaacs في https://github.com/npm/cli/commit/320ac9aeeafd11bb693c53b31148b8d10c4165e8 npm / bin-links # 12 npm / gentle-fs # 7 تم إصداره في [email protected]

ظهرت من خلال نتوء npm من 6.13.2 إلى 6.13.4 في البيرة المنزلية https://github.com/Homebrew/homebrew-core/commit/6acc21a27d0ba4ecfd6ebf4d77af7025143daefe#diff -d3ef2414308e30df24a517ca9a1324ee بواسطة fepined / @ comm )

AFAICS هذا هو السلوك المقصود في npm. من غير الواضح بالنسبة لي كيف ينبغي التعامل مع هذا في إعداد البيرة.

https://github.com/npm/cli/issues/672

لقد أنشأت yarn global add npm وقمت بتثبيت [email protected] ولم أواجه الخطأ ، ولكن الآن اختفت جميع حزمتي العالمية السابقة: ((

لقد اخترت عدم المشاركة في البيرة المنزلية واستخدمت ببساطة https://github.com/nvm-sh/nvm

فقط افعل

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash

ثم في مكان ما في النهاية ، سترى

=> Compressing and cleaning up git repository

=> Appending nvm source string to /Users/aprilmintacpineda/.bash_profile
=> Appending bash_completion source string to /Users/aprilmintacpineda/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

فقط افعل source <name of profile> في حالتي <name of profile> ~/.bash_profile لذا سيكون source ~/.bash_profile

ثم

nvm install node لتثبيت أحدث إصدار من العقدة ، سيقوم أيضًا بتثبيت أحدث إصدار من npm ، والذي نجح معي.

لست متأكدًا مما إذا كان من الواضح للجميع في هذا الموضوع أن الحل ، نظرًا لأنك تعرف ما تفعله ولماذا ، هو ببساطة

npm i -g --force npm (لاحظ العلم --force )

المشكلة هي أنه بعد إجراء npm -I npm والحصول على الخطأ ، تفشل محاولة أي أمر npm مع 'zsh: command not found: npm' ، لذلك لم أتمكن من تنفيذ الأمر --force حتى لو أردت ذلك. اضطررت إلى إعادة تثبيت العقدة لاستعادة npm.

آسف يا رفاق ، لم أصف بشكل كامل كيف تجنبت هذه المشكلة مؤقتًا. لقد قمت بتحديث الوصف ، يرجى إلقاء نظرة.

لست متأكدًا مما إذا كان من الواضح للجميع في هذا الموضوع أن الحل ، نظرًا لأنك تعرف ما تفعله ولماذا ، هو ببساطة

npm i -g --force npm (لاحظ العلم --force )

كان هذا هو الحل الوحيد الذي وجدته لإصلاح هذا في الواقع.

للمرة الثانية يحدث هذا لي في غضون أسابيع قليلة. يمكنك إصلاحه بـ brew reinstall node .

هذا هو الناتج الذي أجريته npm install -g npm :

/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
/usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js
npm ERR! code EEXIST
npm ERR! syscall symlink
npm ERR! path ../../../lib/node_modules/npm/man/man1/npm-adduser.1
npm ERR! dest /usr/local/share/man/man1/npm-adduser.1
npm ERR! errno -17
npm ERR! EEXIST: file already exists, symlink '../../../lib/node_modules/npm/man/man1/npm-adduser.1' -> '/usr/local/share/man/man1/npm-adduser.1'
npm ERR! File exists: /usr/local/share/man/man1/npm-adduser.1
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/albertvilacalvo/.npm/_logs/2020-01-13T11_55_47_922Z-debug.log

تلخيص الحل هو:

brew reinstall node
npm i -g --force npm

هذا لا يحدث فقط مع تثبيت البيرة. لدي نفس المشكلة مع مثبت nodejs (من الموقع الرسمي). يعمل الإصلاح ، على الرغم من ... (sudo npm i -g --force npm)

تحديث npm يحذف npm؟ ولم يتم إصلاحه منذ ديسمبر؟

تحديث npm يحذف npm؟ ولم يتم إصلاحه منذ ديسمبر؟

نعم ، لقد حدث هذا لي أيضًا على نظام التشغيل MacOS 10.15.2

فقط حدث لي أيضا. نظام التشغيل MacOS Catalina 10.15.3

حدث هذا لي على Ubuntu ، ولا أستخدم كلمة "brew".

انتهى بي الأمر بمحاولة إعادة تثبيت npm ، لكنه لن يسمح لي بتثبيته بدون sudo. تم التثبيت باستخدام sudo ، ثم عثرت على دليل (يبدو سيئًا) لاستعادة ملكية الدليل ~ / .npm (وبعض الأدلة الأخرى). في البداية ، ما زالت لا تعمل ، ولكن hash -r تم إصلاحها (في وقت لاحق ، ربما تكون إعادة تشغيل Ubuntu قد نجحت أيضًا). هناك احتمال ضئيل أن هذا أدى أيضًا إلى إصلاح مشكلة كنت أواجهها مع رد الفعل المفاجئ.

تم الإبلاغ عن هذا الخطأ في عام 2014 وحدث لي اليوم في عام 2020. يا لها من كارثة. هل هذا سيتم إصلاحه؟

لقد اخترت عدم المشاركة في البيرة المنزلية واستخدمت ببساطة https://github.com/nvm-sh/nvm

فقط افعل

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash

ثم في مكان ما في النهاية ، سترى

=> Compressing and cleaning up git repository

=> Appending nvm source string to /Users/aprilmintacpineda/.bash_profile
=> Appending bash_completion source string to /Users/aprilmintacpineda/.bash_profile
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

فقط افعل source <name of profile> في حالتي <name of profile> ~/.bash_profile لذا سيكون source ~/.bash_profile

ثم

nvm install node لتثبيت أحدث إصدار من العقدة ، سيقوم أيضًا بتثبيت أحدث إصدار من npm ، والذي نجح معي.

هذا لا يحدث إذا كنت تستخدم nvm

"هذا لا يحدث إذا كنت تستخدم nvm"

نعم ، حسنًا ، لا يحدث ذلك إذا كنت تستخدم yarn أيضًا ، لكنني لست متأكدًا من أن ذلك مناسب.

أعتقد أن هذا غير ذي صلة. NVM هو مدير إصدار العقدة ، لقد اختبرت هذا عندما استخدمت الشراب لتثبيت العقدة ، ثم قمت بالتبديل إلى nvm ، منذ ذلك الحين لم أجرب هذا بعد. تحقق من ذلك هنا إذا كنت لا تعرف ما هو https://github.com/nvm-sh/nvm#installing -and-update

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