Como posso alterar a versão do npm usando o nvm?


240

Estou usando o NVM para instalar as versões mais recentes do nodeJS para o meu trabalho de nó. Funciona totalmente bem para instalar versões separadas e alternar entre elas. Ele também instala a versão mais recente do NPM dentro de cada pasta local ... / bin junto com o nó binário. No entanto, parece não haver maneira de mudar a versão do NPM que estou usando (ou pelo menos não consigo descobrir).

A única solução em que consigo pensar é excluir o binário com o qual está padronizado (que é o NPM que foi instalado quando instalei o nó pela primeira vez com o NVM) e, em seu lugar, colocar o último binário do NPM. No entanto, eu estou querendo saber se há alguma maneira melhor de fazer isso.


1
Por que você deseja alterar a versão do NPM, não é como se você instalasse qualquer pacote que funcione apenas com uma versão antiga do NPM. E após o nó 0.6, o nó vem com o NPM mais recente. Portanto, alterar a versão do nó também mudará a versão do npm.
Farid Nouri Neshat /

1
exceto que não através do NVM. yes - o nó vem com o NPM, mas isso significa apenas que ele instala um binário ao lado dele. posso ver os dois binários em suas respectivas pastas, mas quando executo "nvm use v0.6.13", o binário npm em uso permanece o que foi instalado com a versão mais antiga do nó, em vez daquele instalado com a versão mais recente.
31712 thisissami

1
Aqui está o código para o npm: github.com/creationix/nvm/blob/master/nvm.sh#L135-148 , que não é necessário desde 0.6, então talvez você deva tentar remover essa parte. Isso deve ajudar. Você também pode criar um problema no github.
Farid Nouri Neshat /

Estou trabalhando neste problema agora, qualquer ajuda apreciada - stackoverflow.com/questions/50976138/…
Alexander Mills

Respostas:


330

EDIT: vários anos desde que esta pergunta foi respondida pela primeira vez, conforme observado em uma resposta mais recente , agora existe um comando para isso:

O nvm agora tem um comando para atualizar o npm. É nvm install-latest-npmou nvm install --latest-npm.

nvm install-latest-npm: Tente atualizar para o trabalho mais recente npmna versão atual do nó

nvm install --latest-npm: Após a instalação, tente atualizar para o npm de trabalho mais recente na versão do nó fornecido

Abaixo estão as revisões anteriores da resposta correta para esta pergunta.

Mais de três anos após a primeira pergunta, parece que a resposta é muito mais simples agora. Atualize apenas a versão em que o nvm instalou ~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

Acabei de instalar o nó 4.2.2, que vem com o npm 2.14.7, mas quero usar o npm 3. Então fiz:

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

Fácil!

E sim, isso deve funcionar para qualquer módulo, não apenas para o npm, que você deseja ser "global" para uma versão específica do nó.


EDIT 1: Na versão mais recente, npm -gé inteligente e instala módulos no caminho acima, em vez do caminho global do sistema.


Obrigado @philraj por apontar isso em um comentário.


13
e para aqueles que não sabem onde está sua nvm, como eu, execute a which npm.
Larry

16
E se você quiser uma versão do npm diferente da mais recente, corra npm install npm@major.minor.patchpara obter essa versão específica, por exemplonpm@3.10.9
Michael

2
Algo semelhante também funciona para o nvm-windows , por exemplo cd ~/AppData/Roaming/nvm/v5.10.1.
absynce

2
Para quem usa o nvm para Windows, o mesmo pode ser feito como acima (executando npm install npm), mas nos locais de instalação do nó para o Windows. No Windows 10, é ~ / AppData / Roaming / nvm / [sua versão]. ou seja Users \ myusername \ AppData \ Roaming \ nvm \ v9.7.1
Sean Holmesby

3
Mais fácil: nvm install-latest-npmcomo respondida abaixo, por samlandfried - stackoverflow.com/a/47519162/5991278
philraj

43

NVV não lida com NPM.

Portanto, se você deseja instalar o nó 0.4.x (do qual muitos pacotes ainda dependem) e usar o NPM, ainda poderá usar o npm 1.0.x.

Instale o nó 0.6.x (que vem com o npm 1.1.x) e instale o nvm com o npm:

npm install nvm
. ~/nvm/nvm.sh

Instale o nó 0.4.x com nvm:

nvm install v0.4.12
nvm use v0.4.12

Instale o npm usando install.sh (observe o -Lparâmetro para seguir os redirecionamentos):

curl -L https://npmjs.org/install.sh | sh

Isso detectará o nó 0.4.12 e instalará o npm 1.0.106 na pasta ~ / nvm / v0.4.12 / lib / node_modules e criará um link simbólico para o nvm

~/nvm/v0.4.12/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js

Se você tentar executar o npm, ele ainda causará um erro, mas se você fizer nvm use v0.4.12novamente, deverá funcionar agora.


3
Obrigado! Uma observação de que o URL foi alterado para: curl https://npmjs.org/install.sh | sh
tristen

7
Esta é uma resposta realmente antiga agora? Meu npm é baixado pelo nvm automaticamente como uma dependência da versão do nó que estou usando.
Damon Smith

2
Sim. É velho. Se você ainda estiver usando o nó 0.4 e uma nvm antiga, poderá ver esse problema.
Fijiaaron

1
O URL foi alterado novamente para forçar www. Use curl -Lpara seguir o redirecionamento.
Neal Ehardt 7/10

32

O nvm agora tem um comando para atualizar o npm. É nvm install-latest-npmou npm install --latest-npm.


3
Você tem um link para a documentação para isso?
allicarn

1
Na nvm helpsaída do console: --latest-npm After installing, attempt to upgrade to the latest working npm on the given node versioneu não encontrei uma referência a isso nos nvmdocumentos. Por favor, compartilhe se você o encontrar.
samlandfried

Obrigado! Isso realmente deve ser marcado como a resposta correta.
philraj

seus somente disponível em 32 bits
Negin Basiri

30
npm install npm@x.x.x -g
npm install npm@5.4.0 -g

2
Embora a pergunta seja sobre nvm, eu realmente vim aqui por isso, obrigado. Voto a favor.
Atrahasis

27

Estou no Windows e não consegui fazer nada disso funcionar. Eu continuava recebendo erros sobre os arquivos estarem no caminho. Isso funcionou:

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest

cd %APPDATA%\nvm\v8.10.0 # or whatever version you're using
rm npm-old
rm npm-old.cmd
cd node_modules\
rm -rf npm-old

E bum, estou de volta aos negócios.


3
Obrigado, isso funcionou para mim também, no Windows. (teve mesmo problema de conflitos de arquivo)
Venryx

1
Trabalhou para mim thx. Estou usando o nvm no Windows para gerenciar o nó e queria elevar o nvm depois de mudar para a versão do nó. Teve que executar o console com permissões elevadas. Minha pasta nodejs do caminho é "C: \ Arquivos de Programas \ nodejs", que é um alias para outro local na minha máquina que o nvm usa para fazer cache de downloads (não APPDATA), acho que eu escolhi um local diferente ao instalar o nvm.
Moika transforma

2
Obrigado, eles provavelmente precisam corrigir a maneira como o npm é atualizado em todas as versões antigas do nodejs nas janelas do nvm.
Rbinsztock #

1
Isso me ajudou a atualizar o npm que acompanha o nó 10.x. Obrigado!
andypotato

2
Trabalhei no windows com nodejs v10.15.3, tive que mudar mvpara rene rmpara dele rmdirpara mim.
deerchao 19/09/19

17

Alterar as versões do npm em sistemas operacionais baseados em Linux ainda não é um processo simples de comando. Eu fiz o seguinte para voltar à versão mais antiga do npm. Isso deve funcionar para que qualquer versão do npm funcione. Primeiro instale a versão do npm que você deseja usar:

sudo npm install -g npm@X.X.X

Remova o link sym em / usr / local / bin /

sudo rm /usr/local/bin/npm

Recrie o link sym usando a versão desejada do npm que você instalou

sudo ln -s /usr/bin/npm@X.X.X /usr/local/bin/npm

1
segui estas instruções tentando passar de 2.14.7 para 2.15.9 e agora, quando digito npm -v, recebo 3.8.6. Droga.
Kyle Baker

3
Depois de tentar várias coisas, para mim, apenas o uso sudo npm install -g npm@x.x.xfaz com que essa versão responda npm -v. Pelo menos, isso funcionou indo de 4.x para 2.15.9.
Kyle Baker

1
No meu caso, sudo npm install -g npm@4.6.1apenas instalei o 4.6.1, mas o npm 5.1.0 ainda era usado. Sua dica me ajuda a mudar para 4.6.1.
Hung Tran

8

Ao visitar www.npmjs.com/install.sh , descobri que há uma maneira de instalar uma versão específica, definindo uma variável de ambiente

export npm_install="2.14.14"

Em seguida, execute o download-script conforme descrito em npmjs.com :

curl -L https://www.npmjs.com/install.sh | sh

Se você omitir a configuração da variável npm_install , ela instalará a versão que eles marcaram como mais recente


2
Eu tive que usar curl -L https://www.npmjs.com/install.sh | sudo sh, e esse método não funcionou, obtendo-me a versão mais recente, embora eu tenha exportado a variável de ambiente. Droga. Eu queria a versão 2.15.9 da 2.14.7, a resposta abaixo me colocou em 3.8.6 e agora esta resposta me coloca em 4.0.2. WTF.
Kyle Baker

6

No Windows, execute seu terminal como administrador (caso haja problemas de permissão como eu tinha). Em seguida, use uma versão específica do nó (por exemplo, 7.8.0)

nvm use 7.8.0

atualize seu npm para a versão específica desejada,

npm install -g npm@5.0.3


2

Pequena variação nas instruções acima, funcionou para mim. (MacOS Sierra 10.12.6)

npm install -g npm@3.10.10
rm /usr/local/bin/npm
ln -s ~/.npm-packages/bin/npm /usr/local/bin/npm
npm --version


0

Eu tive o mesmo problema depois de instalar nvm-windowsem cima da instalação existente do Nó. A solução foi apenas seguir as instruções:

Você também deve excluir o local de instalação do npm existente (por exemplo, "C: \ Users \ AppData \ Roaming \ npm") para que o local de instalação do nvm seja usado corretamente.

Instalação e atualizações


0

Instalação e uso do NVM no Windows

Abaixo estão as etapas para a instalação do NVM no Windows:

NVM significa gerenciador de versão do nó, o que ajudará a alternar as versões do nó para uso específico. Ele também permite que o usuário trabalhe com várias versões de npm e nó.

Instale a instalação do nvm. Use o comando "nvm list" para verificar a lista da versão do nó instalado. Digite "nvm use number number [6.9.3]" para alternar versões. Para mais informação

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.