Пятый тип зависимости в целом схож с Normal dependencies, но с одним существенным отличием — менеджер пакетов не выдает ошибку, если не может их загрузить.
На практике это выглядит следующим образом: если после запуска команды npm install процесс по какой-либо причине не может установить зависимости — нет интернет-соединения, не обнаружен файл и прочее, optional dependencies не мешают менеджеру продолжить работу. В той же ситуации, при использовании нормальных зависимостей, мы получили бы ошибку, и установка была бы отменена.
Однако, в таком случае разработчику важно отладить процесс и убедиться, что код будет корректно работать в случае отсутствия зависимостей.
У этого типа есть еще один любопытный вариант применения — инсталляция необязательных зависимостей. Дело в том, что при разработке проектов некоторые системные зависимости могут быть опциональными.
В качестве примера приведем совместимость с платформой CI, которую можно устанавливать только в случае использования этой платформы, а в других случаях — игнорировать.
В подобных ситуациях, при использовании полного перечня зависимостей вы можете выполнять обычную установку NPM, а затем с помощью команды npm install --no-optional пропускать опциональные, что положительно скажется на быстродействии кода.