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+
NPMsam 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.jsonpliku.
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.jsonplik i dodając ten pakiet w scriptssekcji:
{
"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:
npxsprawdzi, czy <command>istnieje w $PATHlokalnych plikach binarnych projektu, czy też go uruchomi. Tak więc, w powyższym przykładzie, jeśli chcesz uruchomić pakiet zainstalowany lokalnie, some-packagewszystko 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 reactaplikacji 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-appjest generatorem.npxidzie 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.