Instalação
Instalando npm e Node
node -v && npm -v # check installed versions npm install -g npm@latest # update npm itself nvm install --lts # install Node LTS via nvm nvm use 20 # switch to Node 20
Comandos de Instalação
npm installInstalar todas as dependências do package.json
npm install pkgAdicionar pacote como dependência
npm install -D pkgAdicionar pacote como devDependency
npm install -g pkgInstalar pacote globalmente
npm install [email protected]Instalar versão específica
npm ciInstalação limpa a partir do lock file (CI/CD)
npm uninstall pkgRemover pacote
Gerenciamento de Pacotes
Gerenciando Pacotes
npm ls # list installed packages npm ls --depth=0 # top-level only npm outdated # check for newer versions npm update # update within semver range npm audit # check for vulnerabilities
Comandos de Gerenciamento
npm lsListar pacotes instalados em árvore
npm outdatedExibir pacotes com versões mais recentes
npm update [pkg]Atualizar pacotes dentro do intervalo semver
npm auditAuditar dependências em busca de vulnerabilidades
npm audit fixCorrigir dependências vulneráveis automaticamente
npm pruneRemover pacotes desnecessários
npm dedupeAchatar árvore de dependências para reduzir duplicação
Scripts
Executando Scripts
npm run build # run "build" script npm test # shortcut for "test" script npm start # shortcut for "start" script npm run lint -- --fix # pass args to script npm run dev & # run in background
Ciclo de Vida de Scripts
npm test / npm tExecutar scripts.test
npm startExecutar scripts.start
npm run <name>Executar qualquer script personalizado
pre<name>Executado automaticamente antes de
post<name>Executado automaticamente após
npm runListar todos os scripts disponíveis
package.json
Inicializar e Campos
npm init # interactive setup npm init -y # accept all defaults npm pkg set name="my-app" # set a field npm pkg get version # read a field
Campos Principais
nameNome do pacote (minúsculas, sem espaços)
versionVersão atual (semver: major.minor.patch)
mainPonto de entrada para CommonJS (require)
modulePonto de entrada para ES modules (bundlers)
type"module" para ESM, "commonjs" para CJS (padrão)
scriptsComandos nomeados (build, test, start, etc.)
dependenciesDependências de produção
devDependenciesDependências apenas de desenvolvimento
enginesIntervalos de versões requeridas de Node/npm
Versionamento
Comandos de Versão
npm version patch # 1.0.0 → 1.0.1 npm version minor # 1.0.1 → 1.1.0 npm version major # 1.1.0 → 2.0.0 npm version 3.2.1 # set explicit version npm version prerelease --preid=beta # 1.0.0-beta.0
Intervalos Semver
^1.2.3Compatível: >=1.2.3 <2.0.0 (padrão)
~1.2.3Nível de patch: >=1.2.3 <1.3.0
1.2.3Somente versão exata
>=1.0.0 <2.0.0Intervalo explícito
*Qualquer versão
1.x / 1.2.xIntervalos com curinga
latestTag da versão publicada mais recente
Publicação
Fluxo de Publicação
npm login # authenticate to registry npm publish # publish public package npm publish --access public # scoped package as public npm unpublish [email protected] # remove specific version npm deprecate pkg@"<2" "Use v2+" # deprecate old versions
Referência de Publicação
npm loginAutenticar com o registro npm
npm publishPublicar pacote no registro
npm packCriar tarball sem publicar
npm unpublishRemover versão publicada (dentro de 72h)
npm deprecateMarcar versões como obsoletas
.npmignoreArquivos a excluir do pacote publicado
files (package.json)Lista de arquivos a incluir no pacote
Workspaces
Comandos de Workspace
npm init -w packages/core # create workspace npm install -w packages/core lodash # install in workspace npm run build --workspaces # run in all workspaces npm run test -w packages/api # run in specific workspace npm ls --workspaces # list workspace deps
Configuração de Workspace
workspaces (package.json)Array de globs de workspace: ["packages/*"]
-w / --workspaceApontar para um workspace específico
--workspacesExecutar comando em todos os workspaces
--include-workspace-rootIncluir pacote raiz nas operações de workspace
npm install (root)Instala todas as dependências de workspace
HoistingDependências compartilhadas movidas para node_modules raiz
npx
Executando com npx
npx create-react-app my-app # run without installing npx tsc --init # run local or remote bin npx -p typescript tsc file.ts # specify package explicitly npx --yes create-next-app # skip install prompt npx node@18 -e "console.log('hi')" # run with specific Node
Opções do npx
npx cmdExecutar cmd de node_modules/.bin local ou remoto
npx -p pkg cmdInstalar pkg e executar cmd
npx --yes cmdConfirmar instalação automaticamente
npx --no cmdRecusar instalação — falha se não estiver local
npx -c 'cmd'Executar comando shell com PATH do npx
npx node@verExecutar versão específica do Node.js
Configuração
Comandos de Configuração
npm config list # show current config npm config set registry https://r.npmjs.com/ npm config set init-author-name "Name" npm config get prefix # global install path npm config delete key # remove a config value
Referência de Configuração
.npmrc (project)Arquivo de configuração por projeto
~/.npmrcArquivo de configuração por usuário
registryURL do registro de pacotes
save-exacttrue para fixar versões exatas na instalação
engine-stricttrue para aplicar campo engines
fundfalse para suprimir mensagens de financiamento
auditfalse para pular auditoria na instalação
Padrões Comuns
One-Liners
npm ls --depth=0 --json | jq '.dependencies | keys[]' npm outdated --long # show type and homepage npm cache clean --force # clear npm cache npm explain pkg # why is pkg installed? npm exec -- envinfo --system # system info for bug reports
Receitas
Somente lock filenpm ci — instalação limpa do package-lock.json
Verificar licençasnpx license-checker --summary
Encontrar dependências não usadasnpx depcheck
Tamanho do bundlenpx bundlephobia-cli pkg — verificar tamanho do pacote
Atualizar tudonpx npm-check-updates -u && npm install
Registro localnpx verdaccio — executar registro privado