NPM
- Gestisce i pacchetti , ma non rende la vita facile l'esecuzione di qualsiasi.
NPX
- Uno strumento per l' esecuzione di pacchetti di nodi.
NPX
viene fornito in bundle con la NPM
versione5.2+
NPM
da solo non esegue semplicemente alcun pacchetto. in realtà non esegue alcun pacchetto. Se si desidera eseguire un pacchetto utilizzando NPM, è necessario specificare quel pacchetto nel package.json
file.
Quando gli eseguibili sono installati tramite pacchetti NPM, NPM li collega:
- le installazioni locali hanno "collegamenti" creati nella
./node_modules/.bin/
directory.
- le installazioni globali hanno "collegamenti" creati dalla
bin/
directory globale (ad es. /usr/local/bin
) su Linux o %AppData%/npm
su Windows.
Documentazione da leggere
NPM:
Si potrebbe installare un pacchetto localmente su un determinato progetto:
npm install some-package
Ora diciamo che vuoi che NodeJS esegua quel pacchetto dalla riga di comando:
$ some-package
Quanto sopra fallirà . Solo i pacchetti installati a livello globale possono essere eseguiti digitando solo il loro nome .
Per risolvere questo problema e farlo funzionare, devi digitare il percorso locale:
$ ./node_modules/.bin/some-package
È possibile eseguire tecnicamente un pacchetto installato localmente modificando il packages.json
file e aggiungendo quel pacchetto nella scripts
sezione:
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
Quindi eseguire lo script utilizzando npm run-script
(o npm run
):
npm run some-package
NPX:
npx
controllerà se <command>
esiste $PATH
o nei file binari del progetto locale e lo eseguirà. Quindi, per l'esempio sopra, se si desidera eseguire il pacchetto installato localmente, some-package
è sufficiente digitare:
npx some-package
Un altro grande vantaggio di npx
è la possibilità di eseguire un pacchetto che non era stato precedentemente installato:
$ npx create-react-app my-app
L'esempio di cui sopra genererà un react
boilerplate per app all'interno del percorso in cui era stato eseguito il comando e garantisce di utilizzare sempre la versione più recente di un generatore o di uno strumento di creazione senza dover aggiornare ogni volta che si sta per usarlo.
Domande correlate:
- Come utilizzare il pacchetto installato localmente in node_modules?
- NPM: come sorgente ./node_modules/.bin cartella?
- Come si esegue un file js utilizzando gli script npm?
create-react-app
è un generatore.npx
va su Internet , scaricando temporaneamente il pacchetto in modo da poterlo eseguire ( np x ). Quello che ottieni (e vuoi) è l'output, che viene salvato localmente, dove hai eseguito il comando.