Модуль npm - Возможно ли разделение зависимостей bin и lib? - PullRequest
0 голосов
/ 16 февраля 2019

Допустим, я уже опубликовал модуль nodejs на npm.Все просто, вы устанавливаете и импортируете его, и, учитывая строку и объект конфигурации, она возвращает строку.

Теперь я хотел сделать его доступным как локальному, так и глобальному модулю: я добавил скрипт в bin в package.json.Скрипт импортирует и использует локальную функцию и печатает результат.Для обработки аргумента и объекта конфигурации я использовал npm yarg в качестве зависимости.

Проблема заключается в следующем: если я хочу установить свой модуль как локальный, зависимость yarg не нужна, поскольку она используется только тогда, когда модуль используется как глобальный.Так что это пустая трата пространства.

Можно ли установить зависимость yarg только в том случае, если мой модуль установлен как глобальный, а не локальный модуль?

1 Ответ

0 голосов
/ 16 февраля 2019

Это не обычная практика.Могут быть сценарии, когда пакет, установленный локально, может быть использован как исполняемый файл CLI, особенно как часть сценария NPM.Все популярные пакеты, которые должны использоваться глобально, такие как npm или grunt, также могут быть установлены и запущены локально.

Нет надежного способа определить, что пакет был установлен глобально.Это может быть потенциально сделано, обнаруживая, что модуль находится в node_modules глобальном местоположении.Могут быть оговорки, которые зависят от конкретной системы.

Размер yargs составляет 760 Кб, что не является критичным.Если объем функций, специфичных для CLI, значителен, исполняемый файл CLI можно извлечь в отдельный пакет, который зависит от исходного пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...