Это началось год назад, когда Эндрю Кларк очаровал всех нас созданием React-Fiber.
Мы все ждали, когда это серьезное изменение произойдет.

8 апреля 2017 года был выпущен React v15.5.0, который устарел:

`React.createClass` and `React.PropTypes`

Мы начали миграцию нашей кодовой базы, чтобы избавиться от предупреждений об устаревании, и ждали, пока другие библиотеки тоже перейдут на последнюю версию.

В React была критическая ошибка с v15.5.0 - v15.5.3, мы напрямую перешли на стабильную v15.6.1, когда были готовы с изменениями, это было много работы, так как она включала изменения почти во всех других компонентах React. с определенными типами PropTypes.

26 сентября 2017 года была выпущена v16.0.0, она была на 33% меньше и производительнее, чем v15.6.1.

Мы были рады выполнить эту миграцию, и мы обновились до v16.2.0. Поскольку мы уже исправили все файлы, в которых ранее появлялось предупреждение об устаревании, мы обнаружили, что миграция очень проста. Но мы видели много предупреждений npm при установке пакетов, что было связано с несовместимостью версии с React v16.0.0 и выше.

Мы также обновили множество библиотек и запустили React v16.2.0 в производство.

Ошибка:

Instamojo.com поддерживает широкий спектр браузеров, в том числе старые браузеры, такие как IE10. В течение 4 часов после релиза мы начали получать логи ошибок от клиентов в Sentry, мы быстро вернулись к старой v15.6.1.
В ходе расследования мы обнаружили, что только браузеры, не поддерживающие ES6, давали сбой. Это было очень странно, потому что мы использовали Babel для переноса нашего кода на ES5.
Мы исследовали дальше и обнаружили, что в нашей конфигурации webpack babel-loader исключил node_modules из транспиляции, и это правильное поведение, потому что по умолчанию все библиотеки публикуются в ES5.

Мы использовали sanitize-html, более новая версия (1.16+) использовала ES6 без транспиляции на ES5. Я вернулся к старой версии sanitize-html и снова запустил React v16.2.0 в производство.

Мы видели, как несколько разработчиков жалуются на одну и ту же проблему, поэтому мы подняли пиар, чтобы сделать библиотеку Babelify. Спасибо Tom Boutell за быстрое объединение и публикацию изменений.

На этот раз все было стабильно, и Instamojo.com в настоящее время работает на последней версии v16.2.0.

Особая благодарность Аакашу Гоэлу за помощь мне во всем.