Сначала это выглядело как обычные капризы дев‑стендов: страница начинала загружаться и никогда не заканчивала. Консоль хранила молчание, логи nginx тоже не показывали ничего подозрительного. Самое странное — проблема проявлялась только в браузерах на базе Chromium, а Firefox и Safari вели себя так, будто ничего не произошло. Стенды у нас славятся нестабильностью, а команда была по уши в упаковке релиза и других задачах — баг просто списали на среду, пожали плечами, переключились на Firefox и продолжили работу. Прод тем временем работал как ни в чём не бывало.
Релиз вышел вечером. Ночью вечный лоадер добрался до прода — и стало не до Firefox.
В прошлой статье я рассказывал, как Vue 3 живёт внутри jQuery‑формы и договаривается с легаси. Сегодняшняя история из того же проекта, но этажом ниже, и она о том, что бывает, когда копий Vue на странице внезапно становится несколько. Заголовок уже выдал виновника, так что детектив у нас с известным убийцей — одной строкой в yarn.lock, прожившей в репозитории три месяца и никого не трогавшей. Интересно здесь другое — как мы её нашли и почему искали так долго.
Как монорепа дошла до такой жизни