-
Notifications
You must be signed in to change notification settings - Fork 14
Description
Пусть мы имеем в зависимостях express у которого в зависимостях path-to-regexp@0.1.17, и @v4fire/client с path-to-regexp@3.2.0.
При установке зависимостей получим следующую структуру модулей:
node_modules/path-to-regexp@0.1.17
node_modules/@v4fire/client/node_modules/path-to-regexp@3.2.0
Вебпак при сборке бандла включит пакет версии 0.1.17, что приведет к поломке роутера. Проблему обнаружил при сборке нового проекта.
Если порассуждать, то данный баг имеет более серьезные последствия, например у нас была некая зависимость с уязвимостью, мы её обновили до свежей версии, но этот же пакет остался уязвимым через транзитивную зависимость. При сборке есть вероятность, что в бандл попадёт именно уязвимая версия, и узнать мы это никак не можем (только вручную проверять бандл).
В качестве временного фикса могу предложить следущее решение:
Добавляем для каждого слоя дополнительный резолв в resolve.modules
[
'/path/to/project/src',
'/path/to/project/',
'/path/to/project/node_modules/@v4fire/client/src',
'/path/to/project/node_modules/@v4fire/client/node_modules', // дополнительный резолв
'/path/to/project/node_modules/@v4fire/core/src',
'/path/to/project/node_modules/@v4fire/core/node_modules', // дополнительный резолв
'/path/to/project/node_modules'
]