Jak sprawdzić, czy pakiet npm został zainstalowany globalnie czy lokalnie

153

Instaluję grunt, node, npm, bower i grunt-cli na windows7.

Instrukcje mówią, że powinienem uruchamiać polecenia instalacji z flagą -g dla globalnego.

Jak mogę sprawdzić, czy podczas instalacji użyłem flagi -g. Odinstalowanie i ponowna instalacja zajmie dużo czasu.

AndraeRay
źródło

Odpowiedzi:

219

Użyj listpolecenia z -gflagą, aby zobaczyć wszystkie pakiety, które są zainstalowane globalnie:

npm list -g

Aby sprawdzić, czy konkretny pakiet jest zainstalowany globalnie, możesz podać nazwę pakietu ( gruntw tym przypadku), jak pokazano poniżej:

npm list -g grunt

Możesz też użyć grepdo filtrowania nazw pakietów:

npm list -g | grep grunt

Źródło: https://docs.npmjs.com/cli/ls

Muntaser Ahmed
źródło
4
Dla logicznej "zainstalowanej czy nie"? sprawdź, spróbuj użyć --depth. Na przykład: npm list --depth 1 --global csats-mturk > /dev/null 2>&1. Oto bardziej szczegółowy przykład .
Adam Monsen
2
@AdamMonsen, szukałem instalacji rybitwy na najwyższym poziomie . Kiedyś npm list --depth 0 --global ternsprawdzałem, czy rybitwa została zainstalowana na całym świecie, tak jakbynpm install -g tern
Sudhi
grepwydaje się dość niezawodnym rozwiązaniem, biorąc pod uwagę komentarze dotyczące wyjścia npm z błędem z powodu niespełnionych zależności
myol
31
npm list --depth 1 --global packagename > /dev/null 2>&1

Następnie możesz sprawdzić stan wyjścia, aby zobaczyć, czy jest zainstalowany, czy nie. Dzięki, Adam Monsen .

Flimm
źródło
3
dzięki za --depth 1! tego właśnie szukałem. Właściwie używam teraznpm list --depth 0 -g
revelt
Z jakiegoś powodu $?zawsze wraca 1do mnie, nawet jeśli pakiet JEST zainstalowany lub NIE jest zainstalowany.
Katie
4
OSTRZEŻENIE: npm zawsze zakończy działanie z błędem, jeśli którykolwiek z pakietów ma niespełnione zależności, nawet jeśli pakiet jest zainstalowany . @Kayvar, dlatego npm zwraca 1 dla Ciebie.
Codebling
17

Aby sprawdzić, czy konkretny pakiet jest zainstalowany globalnie, wykonaj:

npm list -g [package-name]

Weźmy jako przykład „chrząknięcie”. Jeśli jest zainstalowany globalnie, powinieneś zobaczyć coś takiego

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── grunt@0.4.5

Jeśli nie jest zainstalowany globalnie, powinieneś zobaczyć coś takiego

C:\data\tryout\test1>npm list -g grunt
C:\Users\xxxxxxx\AppData\Roaming\npm
└── (empty)

Aby sprawdzić, czy konkretny pakiet jest zainstalowany lokalnie, możesz wykonać te same polecenia, co powyżej, ale bez parametru -g.

źródło: jak sprawdzić, czy pakiet npm został zainstalowany globalnie czy lokalnie .

mvermand
źródło
6

Możesz wyświetlić listę wszystkich pakietów globalnych za pomocą polecenia:

npm ls -g

Lub sprawdź konkretną paczkę z:

npm ls -g [package-name] 

Na przykład: npm ls -g @angular/cli

Mwiza
źródło
1

W systemie Windows używamy następującego polecenia, aby dowiedzieć się, czy pakiet jest zainstalowany, czy nie. Szczegółowe informacje można znaleźć na zdjęciu.

npm list -g | find "create"

przykładowy wynik

SHARATH P
źródło
0

Z Twojej paczki z sindresorhus/is-installed-globally

https://github.com/sindresorhus/is-installed-globally

Stosowanie:

const isInstalledGlobally = require('is-installed-globally');

// With `npm install your-package`
console.log(isInstalledGlobally);
//=> false

// With `npm install --global your-package`
console.log(isInstalledGlobally);
//=> true

Okazało się to przydatne, gdy musiałem dystrybuować wstępnie skompilowane pliki z moim pakietem: Jak opublikować pakiet npm z plikami dystrybucyjnymi? Za pomocą tego pakietu mogę sprawdzić, czy instalacja jest lokalna, czy globalna, a następnie użyć ścieżek względnych dla instalacji lokalnych, jak pokazano tutaj .

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
źródło