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.
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.
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.
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.
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.
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:
referências: npm-init, npx, npm-install.
Top comments (0)