Гигиена зависимостей
Сейчас все то и делают, что пишут про уязвимость в React (оригинал, ссылка, ссылка, ссылка)
А мне вспонимается инцедент с Faker (JS библиотека, github) - И про ее новую версию, которая ломала консоль (пример)
До моего прихода в проекте зависимости были описаны так [прим. - package.json] { "name": "my package", "dependencies": { "lib-1": "^1.0.0" } }
В течение первого месяца на проекте я настоял но полном отказе от такого подхода, в пользу точной версии. А все зависимости на всех возможных окружениях[прим. - как на локальной машине, так и CI] начали ставится через команду npm ci вместо npm i По итогу стало так: { "name": "my package", "dependencies": { "lib-1": "1.0.0" } }
В свою очередь это повлияло и на package-lock.json фаил. В результате чего нас проблема новой версии не задела. Самое примечательное здесь в том, что на момент этого инцидента к нам пришел новый член команды и его, как и нас всех, это уберегло от беды.
Так что совет: следите за зависимостями и их версиями, никогда не ставьте их через "домик". Если вы используете pnpm то можете прописать настройку savePrefix в вашем pnpm-workspace.yaml фаиле:
#filename: pnpm-workspace.yamlsavePrefix: '' # exact version
#tip_of_the_day #npm #pnpm @haradkou_sdet
В этом посте были ссылки, но мы их удалили по правилам Сетки