npm
comando npm install -g npm
.
Este é o log:
~
% 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
Confirmei que isso aconteceu novamente quando executei brew reinstall node
.
Na verdade, como a saída disse, eu executei com sucesso com --force
mas acho que apenas mostrar esses logs é melhor do que remover o comando npm
.
Editar (2020/01/11):
Na verdade, como a saída disse, eu executei com sucesso com
--force
Mais especificamente, fiz estas etapas:
npm
que foi removido por npm install -g npm
brew reinstall node
para restaurá-lonpm install -g --force npm
como a saída mencionadarelacionado à mudança de @isaacs em https://github.com/npm/cli/commit/320ac9aeeafd11bb693c53b31148b8d10c4165e8 npm / bin-links # 12 npm / gentle-fs # 7 lançado em [email protected]
tona pela colisão de npm de 6.13.2 a 6.13.4 em fermentação home https://github.com/Homebrew/homebrew-core/commit/6acc21a27d0ba4ecfd6ebf4d77af7025143daefe#diff -d3ef2414308e30df24a517ca9a1324ee (autoria / comprometida por @pepyakin @fxcoudert @bayandin)
AFAICS este é o comportamento pretendido no npm. Não está claro para mim como isso deve ser tratado em uma configuração de homebrew.
https://github.com/npm/cli/issues/672
Eu fiz yarn global add npm
e ele instalou [email protected]
e não encontrei o erro, mas agora todos os meus pacotes globais anteriores se foram: ((
Eu desativei o homebrew e simplesmente usei https://github.com/nvm-sh/nvm
Apenas faça
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
Então, em algum lugar no final, você verá
=> 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
Basta fazer source <name of profile>
No meu caso <name of profile>
é ~/.bash_profile
então será source ~/.bash_profile
então
nvm install node
para instalar a versão mais recente do node, ele também instalará a versão mais recente do npm, e funcionou para mim.
não tenho certeza se está claro para todos neste tópico que a solução, visto que você sabe o que está fazendo e por quê, é simplesmente
npm i -g --force npm
(observe a bandeira --force
)
O problema é que, depois de executar o npm -I npm e obter o erro, a tentativa de qualquer comando npm falha com 'zsh: command not found: npm', então eu não poderia executar o comando --force mesmo se quisesse. Eu tive que preparar o nó de reinstalação para obter o npm de volta.
Desculpe, pessoal, não descrevi totalmente como evitei temporariamente esse problema. Eu atualizei a descrição, por favor dê uma olhada.
não tenho certeza se está claro para todos neste tópico que a solução, visto que você sabe o que está fazendo e por quê, é simplesmente
npm i -g --force npm
(observe a bandeira--force
)
Esta foi a única solução que encontrei para consertar isso de fato.
2ª vez que isso acontece comigo em algumas semanas. Você pode consertar com brew reinstall node
.
Aqui está a saída que obtenho ao executar 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
Resumindo, a solução é:
brew reinstall node
npm i -g --force npm
Isso não acontece apenas com a instalação do homebrew. Eu tenho o mesmo problema com o instalador nodejs (do site oficial). A correção funciona, porém ... (sudo npm i -g --force npm)
Atualizar o npm exclui o npm? E não está consertado desde dezembro?
Atualizar o npm exclui o npm? E não está consertado desde dezembro?
Sim, também aconteceu comigo no MacOS 10.15.2
Aconteceu comigo também. MacOS Catalina 10.15.3
Isso só aconteceu comigo no Ubuntu, e eu não uso "brew".
Acabei tentando reinstalar o npm, mas ele não me deixou instalá-lo sem o sudo. Instalado com sudo, encontrei um guia (aparentemente ruim) para reclamar a propriedade do diretório ~ / .npm (e alguns outros). No início ainda não funcionava, mas o hash -r corrigiu (em retrospecto, reiniciar meu Ubuntu pode ter funcionado também). Há uma pequena possibilidade de que isso também corrigiu um problema que eu estava tendo com o reajuste.
Este bug foi relatado em 2014 e aconteceu comigo hoje em 2020. Que desastre. Isso vai ser consertado?
Eu desativei o homebrew e simplesmente usei https://github.com/nvm-sh/nvm
Apenas faça
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
Então, em algum lugar no final, você verá
=> 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
Basta fazer
source <name of profile>
No meu caso<name of profile>
é~/.bash_profile
então serásource ~/.bash_profile
então
nvm install node
para instalar a versão mais recente do node, ele também instalará a versão mais recente do npm, e funcionou para mim.
Isso não acontece se você usar nvm
"Isso não acontece se você usar nvm"
Sim, bem, isso não acontece se você usar yarn
também, mas não tenho certeza se isso é relevante.
Acho isso irrelevante. NVM é o gerenciador de versão de nó, eu experimentei isso quando usei o brew para instalar o nó, então mudei para nvm, desde então eu não experimentei isso ainda. Verifique aqui se você não sabe o que é https://github.com/nvm-sh/nvm#installing -and-update
Comentários muito úteis
Resumindo, a solução é: