npx
é um comando muito poderoso que está disponível no npm a partida da versão 5.2, lançada em julho de 2017.
Se você não quiser instalar o npm, poderá instalar o npx como um pacote autônomo
O npx
permite executar código criado com Node.js e publicado por meio do registro npm.
Os desenvolvedores do Node.js costumavam publicar a maioria dos comandos executáveis como pacotes globais, para que eles estivessem no caminho e fossem executáveis imediatamente.
Isso foi uma dor porque você não poderia realmente instalar versões diferentes do mesmo comando.
A execução de npx commandname
encontra automaticamente a referência correta do comando dentro da pasta node_modules
de um projeto, sem precisar saber o caminho exato e sem exigir que o pacote seja instalado globalmente e no caminho do usuário.
Há outro ótimo recurso do npx
, que permite executar comandos sem primeiro instalá-los.
Isso é bastante útil, principalmente porque:
- você não precisa instalar nada. 2. você pode executar diferentes versões do mesmo comando, usando a sintaxe
@version
.
Uma demonstração típica do uso do npx
é através do comando cowsay
. cowsay
imprimirá uma vaca dizendo o que você escreveu no comando. Por exemplo:
cowsay "Hello"
vai imprimir
_______
< Hello >
-------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Isso só funciona se você tiver o comando cowsay
instalado globamente do npm anteriormente. Caso contrário, você receberá um erro ao tentar executar o comando.
npx
permite que você execute esse comando npm sem instalá-lo. Se o comando não for encontrado, o npx
o instalará em um cache central:
npx cowsay "Hello"
vai fazer o trabalho para você.
Agora, este é um comando inútil, mas engraçado. Outros cenários incluem:
- executando a ferramente
vue
CLI para criar novos aplicativos e executá-los:npx @vue/cli create my-vue-app
- criando uma nova aplicação React usando
create-react-app
:npx create-react-app my-react-app
.
e muito mais.
Use o @
para especificar a versão e combine isso com o pacote node npm:
npx node@10 -v #v10.18.1
npx node@12 -v #v12.14.1
Isso ajuda a evitar ferramentas como nvm
ou outras ferramentas de gerenciamento de versão do Node.js.
npx
não limita você aos pacotes publicados no registro npm.
Você pode executar o código que fica em um gist do GitHub, por exemplo:
npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
Claro, você precisa ter cuidado ao executar o código que você não controla, pois com grandes poderes vêm grandes responsabilidades.