Почему, когда я устанавливаю npm-package глобально, он не устанавливает все зависимости пакета, но устанавливает, когда я делаю это локально?

#npm #cypress

#npm #cypress

Вопрос:

Я установил @percy/cypress пакет глобально и связал его с проектом через npm link , но в @percy/agent есть package.json зависимость, и он не установлен. Я был неправ, а именно, он установлен, но двоичный файл из него не может быть найден системой. Итак, у меня нет двоичного файла by percy , который я получаю при @percy/cypress локальной установке (через обычный npm install ). Почему?

Обновить

Мой npm ls -g

Он отображается внутри @percy/cypress пакета, но нет путей среды к его двоичному файлу, т. Е. При запуске percy exec -- cypress run ... я получаю ошибку:

sh: 1: percy: ошибка npm не найдена! ошибка code ELIFECYCLE npm! системный вызов порождает ошибку npm! ошибка file sh npm! ошибок достаточно

И это не тот случай, когда я устанавливаю его локально или добавляю @percy/agent вручную как глобальный.

Могу ли я избежать зависимостей глобального пакета от ручной установки? AFAIK, во время локальной установки npm добавляет двоичные файлы в node_modules/.bin каталог проекта. Может быть, мне следует также предоставить это в виде (sym) ссылки на глобальный путь к двоичным файлам или проектам? Жесткий способ — просто скопировать необходимый каталог ( bin ) из @pecy/agent в каталог проекта node_modules/.bin , но это выглядит странно и сложно. Я думаю, должен быть более подходящий или стандартный способ заставить это работать

Комментарии:

1. пожалуйста, предоставьте вывод npm ls -g

2. @Mr., я исправил сообщение выводом

3. делитесь тем же, что и текст, без передачи в grep

4. @Mr . pastebin.com/5ixusuBc

5. просматривая файл, которым вы поделились в комментариях, я вижу, что @percy/agent установлен локально и глобально.