И вот понадобилось мне поменять там буквально две строчки. Меняю, коммичу, запускаю сборку — валится с полотном каких-то ошибок. Смотрю на ошибки — вебпаку (разумеется, древнейшему) не нравится новомодный синтаксис (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, и проект билдится без единой ошибки. Эта эпопея стоила мне часов пять.