Estou tentando executar outra versão do NodeJS, nvm
mas obtendo este erro:
$ nvm use v4.2.4
nvm is not compatible with the npm config "prefix" option:
currently set to "/Users/z/.npm-global"
Run `npm config delete prefix` or `nvm use --delete-prefix v4.2.4` to unset it.
Eu tenho meu prefixo definido de propósito a evitar sudo npm
(consulte https://docs.npmjs.com/getting-started/fixing-npm-permissions ).
Existe alguma maneira de usar nvm
sem perder meu prefixo para pacotes instalados globalmente?
Respostas:
Excluir e redefinir o prefixo
Nota: Altere o número da versão com o indicado na mensagem de erro.
Créditos para @gabfiocchi no Github - "Você precisa substituir o prefixo nvm"
fonte
npm config set prefix $NVM_DIR/versions/node/<node-version-directory>
Eu tive o mesmo problema e a execução
npm config delete prefix
não me ajudou.Mas isso fez:
Após instalar o nvm usando o brew, crie o
~/.nvm
diretório:$ mkdir ~/.nvm
e adicione as seguintes linhas em
~/.bash_profile
:(Verifique se você não tem nenhum outro comando relacionado à nvm em algum
~/.bashrc
ou~/.profile
ou~/.bash_profile
)Abra um novo terminal e, desta vez, ele não deve imprimir nenhuma mensagem de aviso.
Verifique se o nvm está funcionando executando o
nvm --version
comandoDepois disso, instale / reinstale o NodeJS usando
nvm install node && nvm alias default node
.Mais informações
Eu instalei
nvm
usandohomebrew
e depois recebi esta notificação:Ignorá-lo me levou a esta mensagem de erro:
Segui um guia anterior (de
homebrew/nvm
) e depois descobri que precisava reinstalar o NodeJS. Então eu fiz:e foi consertado.
Atualização: O uso do brew para instalar o NVM causa uma inicialização lenta do Terminal. Você pode seguir estas instruções para resolvê-lo.
fonte
nvm alias default node
Pareceu-me ajudou no meu casonvm
não é suportado quando instalado via brew. Desinstale-o e use o método apropriado, o script curl no leia-me.nvm
. Esta resposta não funcionou para mim.rm -rf node_modules
executarnpm install
novamente, pois os diretórios já tinham problemas de permissões complicados.brew remove node -f
, que remove todas as versões instaladas. Faça isso primeiro, siga o guia no meu link acima e remova node_modules. Você deve obter uma instalação limpa! Acho que você também precisa instalar o npm, que acabei de seguir as instruções de um artigo do nodejs.org que apareceu quando o procurei.npm install npm@latest -g
foi o comando, depois de instalar o nó.Isso pode ser um conflito com a instalação local do Node (se você o tiver instalado de outra maneira que o NVM no passado). Você deve excluir esta instância do nó:
sudo rm -rf /usr/local/lib/node_modules
sudo rm /usr/local/bin/node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm
Depois de instalar o nvm
fonte
Este erro pode ocorrer quando o caminho da pasta de instalação do NVM possui um link simbólico .
Explicação
O caminho de instalação padrão do NVM é:
$HOME/.nvm
mas sua pasta pessoal pode ser um link simbólico para outra unidade, como no meu caso.Por exemplo, minha pasta pessoal é um link simbólico para outra unidade:
/home/myuser -> /bigdrive/myuser
Isso causa o problema do prefixo.
Solução
No script de inicialização (.bashrc ou .zshrc ou outro), altere a pasta NVM para o caminho direto.
Ex:
NVM_DIR="/bigdrive/myuser/.nvm"
..bashrc
fonte
Corri para isso enquanto usava o nó instalado via
nvm
, comnvm
instalado via homebrew. Eu o resolvi executandobrew uninstall nvm
,rm -rf $NVM_DIR
e reinstalando o nvm usando o script de instalação oficial e reinstalando a versão do nó que eu precisava.Nota: Eu também tinha
$NVM_DIR
montado e vinculado. Mudei de volta para minha casa.fonte
Pode ser o problema se você tiver o diretório inicial montado em algum lugar, porque o nvm não funciona corretamente com links simbólicos. Como não me importa onde está localizado meu $ NVM_DIR, eu corro isso e tudo funciona bem:
fonte
Eu tive o mesmo problema e foi realmente irritante cada vez com o terminal. Eu corro o comando para o terminal e ele foi corrigido
Para aqueles que tentam remover nvm da fermentação
pode não ser suficiente apenas preparar a desinstalação do nvm
se você vir o prefixo npm ainda / usr / local, execute este comando
fonte
Eu tenho a mesma mensagem de erro, mas outra solução. O caminho gerado automaticamente durante a curvatura (install.sh) não corresponde. Verifique isso com:
No meu caso:
/var/www//.nvm
. Mostre no seu arquivo bash gerado automaticamente e altere-o e substitua-o: (~ / .bash_profile, ~ / .zshrc, ~ / .profile ou ~ / .bashrc)substituir
com (por exemplo)
fonte
Segui a https://stackoverflow.com/a/47861348/2391795 resposta, mas não funcionou bem.
Depois de executar os comandos recomendados, meu nvm não funcionava mais, executando
nvm use
exibia a versão do nó apropriada sendo usada, mas executandonode -v
mostraria outra. Não era mais possível alterar a versão do nó.Eu desinstalei e reinstalei o nvm completamente para corrigi-lo. Segui https://github.com/creationix/nvm#manual-uninstall executando
Em seguida, editei meu
.zshrc
para remover as linhas relacionadas ao nvm, que no meu caso eramEm seguida, iniciou um novo shell (para que o nvm não seja carregado nesse novo shell) e execute https://github.com/creationix/nvm#install-script
O que adicionou nvm as linhas que eu já havia removido no meu
.zshrc
.Então eu pude usar o nvm como costumava. Eu acho que esse é um caso estranho em que as coisas deram errado e me forçou a reinstalar tudo, não parece que a maioria das pessoas passa por isso devido a esse problema.
fonte
Deixe-me descrever minha situação.
Primeiro, verifique a configuração atual
Então, encontrei o erro de configuração na saída:
Então, eu apaguei o
C:\\Program Files\\nodejs
arquivo /mnt/c/Users/paul/.npmrc.fonte
Resolvi esse problema quando ele era exibido nos terminais VSCode e JetBrains, mas não no terminal nativo usando os seguintes comandos:
Isso fornecerá o caminho resolvido no final:
A partir daí, remover os arquivos e reiniciar o VS Code deve corrigir o problema:
corrija o link: https://github.com/nvm-sh/nvm/issues/1690#issuecomment-392014774
fonte
Eu estava procurando uma solução para o problema do prefixo nvm e encontrei esta pergunta (antes de encontrar a solução). Aqui está o meu shell "diálogo". Espero que possa ser útil para alguém. Consegui definir o prefixo com a ajuda deste post: https://github.com/npm/npm/issues/6592
Quando tentei
npm config delete prefix
ounvm use --delete-prefix
antes de usarnpm --prefix="" set prefix ""
, obtive apenas: npm ERR! código não ok 0Observe que você terá que repetir o mesmo procedimento com todas as versões de nós; o prefixo será definido como (no meu caso) / usr / local após a instalação.
fonte
Eu tive esse problema depois de mover minha pasta pessoal para uma nova unidade no linux. Foi corrigido removendo a pasta .nvm e reinstalando o nvm
fonte
Apenas resolvi o problema. Eu liguei
$HOME/.nvm
para o$DEV_ZONE/env/node/nvm
diretório. Eu estava enfrentando o mesmo problema. SubstituíNVM_DIR
da$HOME/.zshrc
seguinte formaBTW, instale o NVM usando
curl
ouwget
comando não usandobrew
. Para obter mais informações, consulte o comentário nesta edição no Github: 855 # issuecomment-146115434fonte
nvm
comnpm
?Eu só tenho uma ideia. Use o link simbólico para resolver o erro e você ainda pode usar seu prefixo para pacotes instalados globalmente.
ln -s [your prefix path] [path in the '~/.nvm']
então você terá uma pasta simbólica na~/.nvm
pasta, mas, de fato, seus pacotes globais ainda estão instalados no [caminho do seu prefixo]. O erro não será exibido novamente e você poderá usá-lonvm use **
normalmente. ps: funcionou para mimmac
. pps: não se esqueça de definir$PATH
suabin
pasta npm para usar os pacotes instalados globalmente.fonte
Nota:
para remover, excluir ou desinstalar o nvm - basta remover a
$NVM_DIR
pasta (geralmente~/.nvm
),você pode tentar:
rm -rf ~/.nvm
fonte