DEV Community

Ana Caroline Campos
Ana Caroline Campos

Posted on

Diferença entre NPM INIT e NPX

Tanto o npm init quanto o npx são usados para gerenciar pacotes do node. A difrença é que com o npm init nós instalamos um pacote, já no npx nós executamos ele. Bem simples.

Meme com dois homens aranhas se encarando como se fossem iguais

Podemos entender melhor usando o exemplo do create-react-app e do http-server.

npm init react-app

O npm init é um inicializador de pacotes. Ele é usado para iniciar um template de projeto. Com ele não é preciso colocar o create como prefixo porque ele já faz isso automáticamente.

Exemplo de código executado  com sucesso de npm init react-app

npx create-react-app

Exemplo de códido executado com sucesso de npx create-react-app

O npx é um executador (node package eXecute). Ele inicia seu trabalho rastreando na sua máquina ou na pasta do projeto por pacotes que correspondam ao que você está tentando executar. Caso ele não encontre ele fará download dessas depêndencias em uma pasta temporária.

Exibindo pasta temporária do npx

npm install http-server

E por último, o npm install faz a instalação do pacote e depois disso você pode usá-lo só chamando o nome do pacote.

Executando código com sucesso de npm install http-server -g

Quando pensamos no npm install é importante nos atentarmos para não termos pacotes globais desatualizados.

Já com o npx o ideal é usar para pacotes que usaremos pontualmente. Fora isso rodem o npm install na pasta do projeto. É para você que quer usar um pacote sem instalar ele.

Executando código de npx http-server

O npm init, como o próprio nome diz, é um inicializador. Se você usar esse comando para um pacote que não é de inicialização você vai receber um erro bem bonito:

Exibe erro ao tentar executar o código npm init http-server

To do list com começar a usar npm init e parar de usar npx para tudo listados

referências: npm-init, npx, npm-install.

Top comments (0)