NPM- Gestisce i pacchetti , ma non rende la vita facile l'esecuzione di qualsiasi.
NPX- Uno strumento per l' esecuzione di pacchetti di nodi.
NPXviene fornito in bundle con la NPMversione5.2+
NPMda 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.jsonfile.
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%/npmsu 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.jsonfile e aggiungendo quel pacchetto nella scriptssezione:
{
"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:
npxcontrollerà se <command>esiste $PATHo 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 reactboilerplate 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.npxva 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.