NPM: никогда не устанавливайте вложенные дополнительные зависимости для пакета npm

Я создаю пакет A, который я хочу опубликовать в NPM.

A имеет зависимость от пакета B, который, в свою очередь, имеет зависимость от пакета C. C имеет две необязательные нативные зависимости D и E. Я знаю, что для определенных я не использую необязательные зависимости D и E и НИКОГДА не пытайтесь установить их, когда кто-то устанавливает мой пакет.

Я знаю, что вы можете использовать команду npm install A --no-optional -g для установки пакета без дополнительных зависимостей, но это будет знание/накладные расходы, которые я бы предпочел пользователям пакета не нуждаться.

Существует ли какая-либо конфигурация npm или обходной путь, где потребители пакета A могут просто npm install A или npm install -g A, а дополнительные зависимости никогда не будут установлены?

Спасибо

Ответ 1

npm install A --no-optional

Проверите, все ли работает.

npm list

Убедитесь, что у вас нет ошибок.

npm shrinkwrap

Это блокирует зависимости для пакетов.

Таким образом, npm install будет искать npm-shrinkwrap.json, прежде чем пытаться установить зависимости.

Подробнее об этом можно прочитать здесь https://docs.npmjs.com/cli/shrinkwrap