NPM
- Zarządza pakiety ale nie ułatwia życia wykonujący każdy.
NPX
- Narzędzie do wykonywania pakietów Node.
NPX
jest w pakiecie z NPM
wersją5.2+
NPM
sam w sobie nie uruchamia żadnego pakietu. tak naprawdę nie uruchamia żadnego pakietu. Jeśli chcesz uruchomić pakiet za pomocą NPM, musisz określić ten pakiet w swoim package.json
pliku.
Gdy pliki wykonywalne są instalowane za pośrednictwem pakietów NPM, NPM prowadzi do nich linki:
- lokalnyinstalacje mają „linki” utworzone w
./node_modules/.bin/
katalogu.
- instalacje globalne mają „łącza” utworzone z
bin/
katalogu globalnego (np. /usr/local/bin
) w systemie Linux lub w%AppData%/npm
systemie Windows.
Dokumentacja, którą powinieneś przeczytać
NPM:
Można zainstalować pakiet lokalnie w określonym projekcie:
npm install some-package
Powiedzmy teraz, że chcesz, aby NodeJS wykonał ten pakiet z wiersza poleceń:
$ some-package
Powyższe nie powiedzie się . Tylko globalnie zainstalowane pakiety można wykonać, wpisując ich nazwę tylko .
Aby to naprawić i uruchomić, musisz wpisać ścieżkę lokalną:
$ ./node_modules/.bin/some-package
Możesz technicznie uruchomić lokalnie zainstalowany pakiet, edytując packages.json
plik i dodając ten pakiet w scripts
sekcji:
{
"name": "whatever",
"version": "1.0.0",
"scripts": {
"some-package": "some-package"
}
}
Następnie uruchom skrypt za pomocą npm run-script
(lub npm run
):
npm run some-package
NPX:
npx
sprawdzi, czy <command>
istnieje w $PATH
lokalnych plikach binarnych projektu, czy też go uruchomi. Tak więc, w powyższym przykładzie, jeśli chcesz uruchomić pakiet zainstalowany lokalnie, some-package
wszystko co musisz zrobić, to wpisać:
npx some-package
Kolejną ważną zaletąnpx
jest możliwość wykonania pakietu, który nie był wcześniej zainstalowany:
$ npx create-react-app my-app
Powyższy przykład generowania react
aplikacji Gotowa w ścieżce, w której uruchomiono polecenie, i zapewnia, że zawsze używasz najnowszej wersji generatora lub narzędzia do budowania bez konieczności aktualizacji za każdym razem, gdy będziesz go używać.
Powiązane pytania:
- Jak korzystać z pakietu zainstalowanego lokalnie w module node_modules?
- NPM: jak zdobyć folder ./node_modules/.bin?
- Jak uruchomić plik js przy użyciu skryptów npm?
create-react-app
jest generatorem.npx
idzie do Internetu , tymczasowo pobiera pakiet, aby go wykonać ( np. x ). To, co dostajesz (i chcesz), to wyjście, które jest zapisywane lokalnie w miejscu, w którym uruchomiłeś polecenie.