Як сказати, чи встановлено пакет npm глобально чи локально


153

Я встановлюю grunt, node, npm, bower та grunt-cli на windows7.

Інструкція говорить, що я повинен запускати команди встановлення з прапорцем -g для глобального.

Як я можу перевірити, чи використовував я прапор -g під час встановлення. Щоб їх видалити та перевстановити, знадобиться багато часу.

Відповіді:


219

Використовуйте listкоманду з -gпрапором, щоб переглянути всі пакети, які встановлені в усьому світі:

npm list -g

Щоб перевірити, чи встановлений певний пакет глобально, ви можете вказати назву пакета ( gruntу цьому випадку), як показано нижче:

npm list -g grunt

Або ви можете використовувати grepдля фільтрування назви пакетів:

npm list -g | grep grunt

Джерело: https://docs.npmjs.com/cli/ls


4
Для булевого "встановлено чи ні?" перевірити, спробувати використовувати --depth. Наприклад: npm list --depth 1 --global csats-mturk > /dev/null 2>&1. Ось більш детальний приклад .
Адам Монсен

2
@AdamMonsen, я шукав установку tern верхнього рівня . Я npm list --depth 0 --global ternперевіряв, чи не встановлений терн у всьому світі, як нібиnpm install -g tern
Sudhi

grepвидається досить надійним рішенням, враховуючи коментарі про вихід npm з помилкою через невиконані залежності
myol

31
npm list --depth 1 --global packagename > /dev/null 2>&1

Потім ви можете перевірити стан виходу, щоб побачити, встановлений він чи ні. Спасибі Адам Монсен .


3
спасибі за --depth 1! ось що я шукав. Насправді я зараз користуюсяnpm list --depth 0 -g
revelt

Чомусь $?завжди повертається 1для мене, навіть якщо пакет встановлений або НЕ встановлений.
Кеті

4
ПОПЕРЕДЖЕННЯ: npm завжди вийде з помилкою, якщо будь-який з ваших пакетів має невиконані залежності, навіть якщо пакет встановлений . @Kayvar тому npm повертає 1 для вас.
Кодифікація

17

Щоб перевірити, чи встановлений певний пакет глобально, виконайте:

npm list -g [package-name]

Візьмемо «приклад» як приклад. Якщо він встановлений у всьому світі, ви повинні побачити щось подібне

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

Якщо він не встановлений глобально, ви повинні побачити щось подібне

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

Щоб перевірити, чи встановлений певний пакет локально, ви можете виконати ті самі команди, що і вище, але без параметра -g.

Джерело: Як перевірити, чи встановлено пакет npm глобально чи локально .


6

Ви можете перелічити всі глобальні пакети за допомогою команди:

npm ls -g

Або перевірте наявність конкретного пакета за допомогою:

npm ls -g [package-name] 

Наприклад: npm ls -g @angular/cli


1

У Windows ми використовуємо таку команду, щоб з’ясувати, встановлений чи ні пакет. Будь ласка, зверніться до зображення для отримання деталей.

npm list -g | find "create"

вибірковий результат


0

З вашого пакету с sindresorhus/is-installed-globally

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

Використання:

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

Я вважаю це корисним, коли мені довелося поширювати попередньо вбудовані файли зі своїм пакунком: Як опублікувати пакет npm з файлами розподілу? За допомогою цього пакета я можу перевірити, чи встановлення локальна чи глобальна, а потім використовувати відносні шляхи для локальних установок, як показано тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.