Boa noite tudo bem?
Então baseado em pesquisas e o que eu entendo sobre o Node.js trago uma breve explicação da diferença do NPM pro NPX e o porque com o NPX funcionou o comando no terminal.
Boa Leitura :)
NPM > Gerenciador de Pacotes
O NPM (Node Package Manager), é um repositório online para publicação de projetos em Node.js de código aberto. O NPM por si só não executa os pacotes. Quando quando alguns arquivos executaveis são instalados por meio do NPM , ele cria um link uma espécie de caminho até ele
- Instalações locais tem links criados no diretório no exemplo da aula > node_modules
- Instalações globais criam os links no diretório global (De acordo com seu sistema operacional > Linux: /user/local/bin | Windows: %AppData%/npm)
Para voce executar um pacote NPM, é necessário:
- Digitar o Caminho Global -----> $ ./node_modules/.bin/seu-pacote
Uma alternativa é executar o arquivo package.json na seção de script
{
"name": "sua-aplicacao",
"version": "1.0.0",
"scripts": {
"your-package": "seu-pacote"
}
}
após escrever esse código executar no terminal npm run nome-do-seu-pacote
E é aqui que o NPX entra:
NPX > O Executor de Pacotes
As ultimas versões do NPM vem com o npx integrado internamente como padrão. O npx possui também uma ferramenta de interface de linha de comando onde ele facilita a instalação e o gerenciamento de algumas dependências hospedadas nos registros do NPM.
Você pode executar o seguinte comando para visualizar se possui o npx instalado
- wich npx
Caso não possua ele instalado na versão que esta utilizando pode instalar usando o seguinte comando:
- npm install -g npx
Assim consegue executar um pacote instalado localmente facilmente da seguinte maneira (Exemplo com o código dado na aula):
- npx json-server db.json
Por isso que usando o NPX funcionou, ele é um executor de pacotes. Ele traz também diversos outros benefícios como:
- Evita questões de versionamento e dependências
- Evita instalação de pacotes desnecessários para aplicação
- Ele também facilita comandos, execução de pacotes modulos e também scprits e repositórios do GITHUB
Espero ter esclarecido sua dúvida, desde ja agradeço
Uma boa noite :)
E bons estudos: <3