Skip to content

Instalar npm com fnm

npm (Node Package Manager) é instalado junto com o Node.js. Este guia apresenta como gerenciar npm através do fnm.

Relação entre npm e fnm

Quando você instala Node.js usando fnm, o npm é automaticamente incluído:

bash
# Instalar Node.js (automaticamente inclui npm)
fnm install 20

# Verificar versão npm
npm --version

Verificar Versão npm

bash
# Visualizar versão npm atual
npm --version

# Visualizar versões Node.js e npm
node --version
npm --version

Diferentes versões do Node.js correspondem a diferentes versões do npm:

Node.jsnpm
20.x10.x
18.x9.x
16.x8.x

Atualizar npm

Usando Auto-Atualização do npm

bash
# Atualizar para versão mais recente
npm install -g npm@latest

# Atualizar para versão específica
npm install -g npm@10.2.0

Alternar Versão do Node.js

Alternar versão do Node.js também alterna a versão do npm:

bash
# Alternar para Node.js 20
fnm use 20
npm --version  # Saída: 10.x.x

# Alternar para Node.js 18
fnm use 18
npm --version  # Saída: 9.x.x

Gerenciamento de Pacotes Globais npm

Visualizar Caminho de Instalação Global

bash
npm config get prefix

Localização de Pacotes Globais

Pacotes globais do Node.js gerenciados pelo fnm estão localizados em:

~/.fnm/node-versions/<version>/installation/lib/node_modules

Instalar Pacotes Globais

bash
# Instalar pacotes globais
npm install -g pnpm
npm install -g yarn
npm install -g typescript

# Visualizar pacotes globais
npm list -g --depth=0

Usar Corepack

Corepack é um gerenciador de gerenciadores de pacotes para Node.js que pode gerenciar npm, yarn e pnpm:

Habilitar Corepack

bash
# Habilitar Corepack ao instalar Node.js
fnm install 20 --corepack-enabled

# Ou definir variável de ambiente
export FNM_COREPACK_ENABLED=true
fnm install 20

Usar Corepack

bash
# Habilitar Corepack
corepack enable

# Usar versão específica do yarn
corepack prepare yarn@stable --activate

# Usar versão específica do pnpm
corepack prepare pnpm@latest --activate

Configuração npm

Configurar Mirror

bash
# Definir mirror npm
npm config set registry https://registry.npmmirror.com

# Visualizar configuração atual
npm config list

# Restaurar mirror padrão
npm config set registry https://registry.npmjs.org

Mirrors Comuns

Fonte do MirrorURL
npm Oficialhttps://registry.npmjs.org
npmmirrorhttps://registry.npmmirror.com
Tencent Cloudhttps://mirrors.cloud.tencent.com/npm/

Gerenciamento de Múltiplas Versões npm

Como o npm é instalado com o Node.js, a melhor maneira de gerenciar múltiplas versões do npm é:

Método 1: Alternar Versão do Node.js

bash
# Instalar múltiplas versões do Node.js
fnm install 20
fnm install 18

# Alternar versões
fnm use 20  # npm 10.x
fnm use 18  # npm 9.x

Método 2: Atualizar npm Independentemente

bash
# Atualizar npm na versão atual do Node.js
npm install -g npm@latest

Problemas Comuns

Comando npm Não Encontrado

bash
# Confirmar se Node.js está instalado
fnm list

# Confirmar versão atual em uso
fnm current

# Reinstalar Node.js
fnm install 20 --use

Instalação de Pacote Global Falhou

bash
# Limpar cache npm
npm cache clean --force

# Verificar permissões
ls -la ~/.fnm/node-versions/

# Reinstalar
npm install -g <package>

Versão npm Incompatível

bash
# Verificar versão Node.js
fnm current

# Restaurar versão padrão do npm
fnm uninstall <version>
fnm install <version>

Melhores Práticas

1. Usar Campo engines no package.json

Especificar versões do Node.js e npm no projeto:

json
{
  "engines": {
    "node": ">=18.0.0",
    "npm": ">=9.0.0"
  }
}

2. Usar Arquivo .npmrc

Criar arquivo .npmrc no projeto:

registry=https://registry.npmmirror.com
save-exact=true

3. Bloquear Gerenciador de Pacotes

Usar campo packageManager:

json
{
  "packageManager": "npm@10.2.0"
}