Проверьте, установлен ли конкретный пакет NPM глобально - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь проверить, установлен ли / доступен ли конкретный пакет npm глобально с помощью Nodejs.Мне удалось перечислить глобальные зависимости / пакеты с помощью команды npm npm list -g --depth=0.Так что я попробовал этот кусок кода.

const {exec} = require("child_process");

exec("npm list -g --depth=0",(err, stdout, stderr) => {
   if (err) {
     console.error(err);
     return;
    }
  console.log(stdout);
});

Затем он выдает ошибку вроде этого

enter image description here

PS: я такжепытался использовать npm list -g --depth=0 | grep nodemon, но я не могу использовать его в командной строке.Так что не так в приведенном выше коде?Как проверить, установлен ли пакет глобально в любой ОС с использованием nodejs?

1 Ответ

1 голос
/ 31 мая 2019

Код в вашем файле npm.js выглядит нормально и должен успешно работать - при условии, что:

  • при запуске npm list -g --depth=0 непосредственно в CLI вы получите желаемый результат.
  • Версия ваших nodejs поддерживает функции ES6, такие как Разрушение объектов и Функции стрелок .

Проблема заключается вимя файла сценария nodejs - не называйте его npm.js.

Вам необходимо переименовать файл как-нибудь еще, например, например: get-global-pkgs.js.

Затем cd вкаталог, в котором находится get-global-pkgs.js, и выполните одну из следующих команд:

node get-global-pkgs.js

или

node get-global-pkgs

т.е. без суффикса .js


Примечание: Присвоение имени файлу npm.js представляется проблемой, только если содержимое файлов использует методы exec() и / или spawn(), иданная команда приводит к запросу http (s) GET.

...