تمت إزالة الأمر npm
بعد تشغيل npm install -g npm
.
هذا هو السجل:
~
% 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
وبشكل أكثر تحديدًا ، قمت بهذه الخطوات:
npm
الذي تمت إزالته بواسطة npm install -g npm
brew reinstall node
لاستعادتهnpm install -g --force npm
كما هو مذكورالمتعلقة بتغيير 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
التعليق الأكثر فائدة
تلخيص الحل هو: