1.8Kпросмотров
95.2%от подписчиков
30 августа 2025 г.
Score: 2.0K
Есть у меня один проект, который я не трогал с 2021 года. Написан на vue2. На сервере установлена нода, внимание, v13 (отдельно забавляет, что нечетная версия, то есть она была актуальной буквально полгода и даже LTS не становилась). И вот понадобилось мне поменять там буквально две строчки. Меняю, коммичу, запускаю сборку — валится с полотном каких-то ошибок. Смотрю на ошибки — вебпаку (разумеется, древнейшему) не нравится новомодный синтаксис (nullish coalescense ??). Смотрю на node.green, он появился в node v14. Окей, nvm install v14. Всё равно падает. Думаю «ну ладно, видимо за это отвечает какой-то из лоадеров, а вот его мне уже точно не вперлось обновлять». Решаю посмотреть поглубже, а из-за чего все-таки возникает ошибка. Смотрю и вижу, что версии зависимостей более новые, чем указано в package.json. Ага, какой-то умник не удосужился закоммитить локфайл в репу, и всё поехало. Решаю запинить версии всех зависимостей — меняю "^1.0.0" на "1.0.0". Не помогает — падает не из-за коренных зависимостей, а из-за под-зависимостей. Решаю установить эти зависимости явно с припиненной версией — не помогает, устанавливается две версии пакета: старая и новая. Смотрю доку на package.json, вижу там фичу под названием overrides, решаю заюзать. По какой-то неведомой причине всё равно ставится новая. Я в замешательстве, подумываю убить проект с концами и залить бензином. Вдруг краем глазом замечаю файлик yarn.lock. Вздыхаю, откатываю все изменения, включаю ноду v13, ставлю зависимости yarn-ом v1.22.22, и проект билдится без единой ошибки. Эта эпопея стоила мне часов пять.