NPM
- Gerencia pacotes, mas não facilita a execução de nenhum.
NPX
- Uma ferramenta para executar pacotes de nós.
NPX
vem junto com a NPM
versão5.2+
NPM
por si só não executa simplesmente nenhum pacote. Na verdade, ele não executa nenhum pacote. Se você deseja executar um pacote usando o NPM, deve especificar esse pacote no seu package.json
arquivo.
Quando os executáveis são instalados via pacotes NPM, o NPM se vincula a eles:
- instalações locais têm "links" criados no
./node_modules/.bin/
diretório
- instalações globais têm "links" criados a partir do
bin/
diretório global (por exemplo /usr/local/bin
) no Linux ou no %AppData%/npm
Windows.
Documentação que você deve ler
NPM:
Pode-se instalar um pacote localmente em um determinado projeto:
npm install some-package
Agora, digamos que você queira que o NodeJS execute esse pacote na linha de comando:
$ some-package
O acima irá falhar . Somente pacotes instalados globalmente podem ser executados digitando apenas seu nome .
Para corrigir isso e executá-lo, você deve digitar o caminho local:
$ ./node_modules/.bin/some-package
Tecnicamente, você pode executar um pacote instalado localmente editando seu packages.json
arquivo e adicionando esse pacote na scripts
seção:
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
Em seguida, execute o script usando npm run-script
(ou npm run
):
npm run some-package
NPX:
npx
irá verificar se <command>
existe $PATH
ou nos binários locais do projeto e executá-lo. Portanto, para o exemplo acima, se você deseja executar o pacote instalado localmente, some-package
basta digitar:
npx some-package
Outra grande vantagem npx
é a capacidade de executar um pacote que não foi instalado anteriormente:
$ npx create-react-app my-app
O exemplo acima gerará um react
clichê de aplicativo no caminho em que o comando foi executado e garante que você sempre use a versão mais recente de um gerador ou ferramenta de compilação sem precisar atualizar sempre que estiver prestes a usá-lo.
Perguntas relacionadas:
- Como usar o pacote instalado localmente em node_modules?
- NPM: como origem da pasta ./node_modules/.bin?
- Como você executa um arquivo js usando scripts npm?
create-react-app
é um gerador.npx
vai para a internet , baixando o pacote temporariamente para que ele possa ser executado ( np x ). O que você obtém (e deseja) é a saída, que é salva localmente, onde você executou o comando.