Minha pergunta
Existem algumas críticas contra npm n
, mas são datadas (principalmente de < 2018). As críticas ainda permanecem? É n
instável ou tem armadilhas? Vale dizer que houve 115.014 downloads para n
esta semana.
O problema
Eu quero instalar as últimas versões estáveis do npm e do nodeJS no Ubuntu 20.04, mas isso é surpreendentemente difícil.
Relacionado:
O Veredicto
Depois de alguns anos executando isso muito bem, acho que posso dizer com confiança que não há problemas reais (pelo menos, não os encontrei). O único problema é começar
n
a trabalhar. Para isso, leia abaixo.Resolvendo com npm n
Estou instalando como um usuário com acesso sudo e nunca quero
sudo
npm ou node para fazê-lo funcionar (por quê?) .Instale o npm:
sudo apt install npm
.Definir prefixo para npm :
npm config set prefix ~/.npm
Atualize o npm para a versão mais recente,
npm i -g npm
.Defina as variáveis ambientais no
~/.profile
arquivo (essas alterações só funcionarão depois que você sair e entrar novamente, ou se você executarsource ~/.profile
):n
para atualizar o nó (consulte: https://askubuntu.com/a/663052/808646 ):Execute
source ~/.profile
para atualizar as variáveis ambientais. Desta forma, o bash encontrará o caminho paranpm
en
durante esta sessão (ou seja, sem ter que sair e entrar novamente).Desinstale os nodejs anteriores que vieram instalados pelo npm:
sudo apt-get purge nodejs
.Explicação : esta etapa é crucial. Até agora, foi o que aconteceu: você instalou o
npm
, mas na verdade ele instalou o antigonodejs
e o antigonpm
em cima dele. Embora você supostamente "instalou" um novonodejs
usandon
, o anteriornodejs
tem precedência en
não pode realmente instalar o novonodejs
que baixou, primeiro você deve remover o antigo.No entanto, se você removê-lo sem instalar um novo
npm
, você não teránpm
mais, porque desinstalarnodejs
desinstalações antigasnpm
também (eu acho... ou pode funcionar se você exportar todas as vars novamente? Talvez apenasn
instalando com um nodejs/npm versão será suficiente?) . Portanto, você deve instalar um novonpm
(você fez isso na etapa 3) e um novonodejs
uson
(você fez isso na etapa 6) antes de desinstalar o antigonodejs
. A razão pela qual você também precisa de uma novanodejs
instalação é que sem um newnodejs
, newnpm
não será executado, requer umanodejs
instalação atual.n
e selecione a versão correta do nodejs (*por padrão, ele usará o npm que acompanha essa versão do nodejs, mas há opções para evitar isso):node -v
A execução
sudo apt install npm
funciona bem, massudo apt-get --purge remove nodejs
também removeránpm
, colocando você de volta ao ponto de partida. Portanto, não vejo nenhuma maneira de usar uma abordagem não adequada para instalar a versão mais recente donodejs
.