Publicado em
· 10 de julho de 2026

npx: o que é e como executar pacotes npm sem instalar

Blog
  • Foto de Henrico Piubello
    Henrico Piubello
    Henrico Piubello
    Especialista de TI - Grupo Voitto

    Especialista de TI - Grupo Voitto

Terminal executando o comando npx cowsay ao lado da logo do npm

O npx é um executor de pacotes que acompanha o npm desde a versão 5.2.0 e serve para rodar ferramentas de linha de comando hospedadas no registro npm sem instalá-las globalmente. Ele resolve binários locais do projeto automaticamente e baixa pacotes ausentes sob demanda, executando tudo direto no terminal.

O que é o npx e como ele funciona?

O npx é a ferramenta de execução de pacotes embutida no npm: da mesma forma que o npm simplifica a instalação e o gerenciamento de dependências hospedadas no registro, o npx facilita o uso de ferramentas de CLI (Command Line Interface, interface de linha de comando) e outros executáveis publicados nesse mesmo registro — que hoje reúne mais de 2 milhões de pacotes, segundo a página oficial do npm.

A ferramenta foi lançada junto com o npm@5.2.0, em julho de 2017. No anúncio oficial, Kat Marchán, então engenheira da equipe do npm, escreveu: "Quem atualizar o npm para a versão mais recente, npm@5.2.0, vai notar que ela instala um novo binário ao lado do npm de sempre: o npx" (tradução livre).

O funcionamento segue uma lógica simples: quando você digita npx <comando>, o npx procura o binário correspondente em node_modules/.bin do projeto e no cache global. Se encontra, executa na hora; se não encontra, baixa o pacote do registro para um diretório temporário, executa e descarta, sem tocar nas suas dependências.

Um detalhe de arquitetura importante: a documentação oficial do npm registra que "o binário npx foi reescrito no npm v7.0.0, e o pacote independente npx foi descontinuado naquele momento" (tradução livre). Desde então, o npx usa o comando npm exec internamente, mantendo compatibilidade com os argumentos das versões anteriores. Na prática, para quem usa Node.js atualizado, nada muda: o comando npx continua disponível em qualquer instalação padrão.

Qual a diferença entre npm e npx?

O npm instala e gerencia dependências; o npx executa pacotes sem instalá-los de forma permanente. A tabela abaixo resume as diferenças:

Aspectonpmnpx
Função principalInstalar e gerenciar dependênciasExecutar pacotes e binários
Instalação globalNecessária para usar CLIsDispensável: roda sob demanda
package.jsonRegistra e versiona dependênciasNão altera as dependências
Uso típiconpm install expressnpx create-react-app meu-app
Disponível desde2010, junto com o Node.jsnpm 5.2.0, em julho de 2017

Em resumo: use npm quando o pacote fizer parte do projeto e precisar de versão controlada; use npx quando quiser apenas executar uma ferramenta, uma vez ou de forma pontual. Para uma visão mais ampla desse ecossistema — incluindo Yarn e pnpm —, veja nosso guia de gerenciadores de pacotes do universo JavaScript.

Como usar binários locais sem npm run-script?

Com o npx, basta digitar npx mocha (ou o binário que preferir) dentro do projeto: ele localiza a ferramenta em node_modules/.bin e a executa, sem alias de shell nem caminhos manuais.

Terminal instalando o cowsay como devDependency local e executando npx cowsay no projeto

Nos últimos anos, o ecossistema npm caminhou em direção à instalação de ferramentas como devDependencies locais do projeto, em vez de exigir instalações globais. Ferramentas como mocha, grunt e bower, que antes viviam no sistema inteiro, agora têm versões gerenciadas projeto a projeto. Para iniciar um projeto baseado em npm, basta ter node e npm no sistema, clonar o repositório e rodar npm it — que executa install e test. Como o npm run-script adiciona os binários locais ao $PATH, tudo funciona dentro dos scripts.

A desvantagem desse modelo é que ele não oferece uma maneira conveniente de invocar binários locais interativamente. As alternativas tradicionais têm algum incômodo: adicionar a ferramenta aos scripts do package.json (e lembrar de passar argumentos com --), criar um alias como npmx=PATH=$(npm bin):$PATH ou digitar o caminho completo ./node_modules/.bin/mocha. Todas funcionam; nenhuma é ideal.

O npx resolve isso com uma única palavra a mais no terminal. E, para pontos extras, o npx praticamente não tem overhead ao invocar um binário já instalado: ele é inteligente o suficiente para carregar o código da ferramenta diretamente no processo node em execução, o que o torna perfeitamente aceitável até para scripts. Vale registrar que o fallback automático de shell, sugerido no anúncio original de 2017, foi removido no npm v7 — a documentação oficial o considera desaconselhável.

Quando usar o npx para comandos pontuais?

Use o npx sempre que quiser experimentar uma ferramenta de linha de comando sem instalá-la globalmente só para rodá-la uma vez. Chamar npx <comando> quando o comando não está no seu $PATH instala automaticamente um pacote com esse nome a partir do registro npm e o invoca. Ao terminar, o pacote não fica nos seus globais — sem poluição de longo prazo.

Essa funcionalidade é ideal para geradores de projeto. Ferramentas como yeoman ou create-react-app são chamadas de vez em quando; entre um uso e outro, a versão instalada já estaria desatualizada, então você acabaria reinstalando de qualquer forma. Com o npx, cada execução usa a versão mais recente — é exatamente assim que muitos devs dão os primeiros passos com React.

Para quem mantém ferramentas de código aberto, há outro benefício: colocar $ npx minha-ferramenta nas instruções do README.md elimina o obstáculo da instalação. Dizer "copie e cole este único comando, sem compromisso" convence muito mais usuários inseguros do que pedir uma instalação global.

Algumas ferramentas divertidas para experimentar com o npx: happy-birthday, benny-hill, workin-hard, yo e npm-check. Existe até um repositório inteiro dedicado ao tema, o awesome-npx.

Executando comandos com outras versões do Node.js

O npx também substitui gerenciadores de versão em testes rápidos. Existe um pacote chamado node no registro npm, criado por Aria Stewart, que empacota o próprio runtime. Combinado com a opção -p do npx — que especifica pacotes para instalar e adicionar ao $PATH da execução —, ele permite experimentar comandos em diferentes versões do Node.js sem instalar um gerenciador como nvm, nave ou n.

Um exemplo prático: $ npx -p node@18 npm it instala e testa o seu pacote atual como se o node@18 estivesse instalado globalmente, mesmo que a sua máquina rode outra versão. Isso é útil para verificar compatibilidade com a versão mínima de Node.js que o seu pacote declara suportar antes de publicar — um complemento rápido à matriz de testes do CI.

Desenvolvendo run-scripts interativamente com a opção -c

Muitos usuários do npm aproveitam o recurso run-script, que além de organizar o $PATH com os binários locais, injeta dezenas de variáveis de ambiente acessíveis nesses scripts — você pode listá-las com $ npm run env | grep npm_. O problema: desenvolver e testar esses scripts interativamente é complicado, porque fora do run-script essas variáveis mágicas não existem, mesmo com truques como $(npm bin)/algum-bin.

O npx tem um truque para isso: com a opção -c, o script escrito dentro do argumento de string recebe acesso total às mesmas variáveis de ambiente de um run-script regular — incluindo pipes e múltiplos comandos em uma única invocação.

Terminal executando npx com a opção -c encadeando os pacotes cowsay e lolcatjs

O comando da demonstração acima, npx -p cowsay -p lolcatjs -c 'echo "$npm_package_name@$npm_package_version" | cowsay | lolcatjs', instala os dois pacotes temporariamente e dá ao script acesso às variáveis $npm_*, imprimindo o nome e a versão do pacote atual em um cowsay colorido.

Conclusão

O npx é uma daquelas ferramentas pequenas que mudam hábitos: depois de incorporar npx <ferramenta> ao dia a dia, instalar CLIs globalmente passa a parecer desnecessário na maioria dos casos. A recomendação prática do CodeCrush é direta — use npm para dependências do projeto, npx para execuções pontuais, e fixe a versão (npx pacote@versão) sempre que o comando entrar em um script ou pipeline, garantindo builds reprodutíveis e menos surpresas de segurança.

## faq

Perguntas frequentes

Para que serve o npx?

O npx serve para executar ferramentas de linha de comando publicadas no registro npm sem instalá-las globalmente. Ele localiza binários instalados no projeto (node_modules/.bin) ou baixa o pacote sob demanda, executa e descarta. É ideal para geradores de projeto, utilitários pontuais e scripts que precisam de uma versão específica de uma ferramenta.

Qual a diferença entre npm e npx?

O npm instala e gerencia dependências de um projeto; o npx executa pacotes. Com o npm você adiciona bibliotecas ao package.json e controla versões; com o npx você roda um binário imediatamente, local ou remoto, sem alterar suas dependências. Desde o npm v7, o npx é implementado sobre o comando npm exec.

Preciso instalar o npx separadamente?

Não. O npx acompanha o npm desde a versão 5.2.0, lançada em julho de 2017, e qualquer instalação atual do Node.js já o inclui. O pacote independente npx foi descontinuado no npm v7.0.0, quando o binário passou a usar o npm exec internamente. Basta manter o Node.js atualizado para ter a versão mais recente.

O npx baixa o pacote toda vez que executo um comando?

Depende. Se o pacote já está instalado no projeto ou globalmente, o npx usa o binário existente, praticamente sem overhead. Se não está, o npx baixa a versão mais recente para um cache temporário, executa e não adiciona nada às suas dependências. Versões atuais pedem confirmação antes de baixar pacotes novos.

É seguro rodar npx com qualquer pacote?

Nem sempre. O npx executa código do registro npm na sua máquina, e pacotes maliciosos ou typosquatting são riscos reais. Prefira pacotes conhecidos, confira o nome exato antes de executar e fixe versões (npx pacote@versão) em scripts. Desde o npm v7, o npx pede confirmação antes de instalar pacotes ausentes.

## continue lendo

Continue navegando

Sobre o autor

Foto de Henrico Piubello

Henrico Piubello

Especialista de TI - Grupo Voitto · Grupo Voitto

Ver perfil e todos os artigos