Odpowiedzi:
Użyj list
polecenia z -g
flagą, 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 ( grunt
w tym przypadku), jak pokazano poniżej:
npm list -g grunt
Możesz też użyć grep
do filtrowania nazw pakietów:
npm list -g | grep grunt
Źródło: https://docs.npmjs.com/cli/ls
npm list --depth 0 --global tern
sprawdzałem, czy rybitwa została zainstalowana na całym świecie, tak jakbynpm install -g tern
grep
wydaje 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
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 .
--depth 1
! tego właśnie szukałem. Właściwie używam teraznpm list --depth 0 -g
$?
zawsze wraca 1
do mnie, nawet jeśli pakiet JEST zainstalowany lub NIE jest zainstalowany.
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 .
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 .
--depth
. Na przykład:npm list --depth 1 --global csats-mturk > /dev/null 2>&1
. Oto bardziej szczegółowy przykład .