Ускорение сборки CI¶
Возможно, вы или ваша компания создали среду непрерывной интеграции (CI) для тестирования вашего приложения React Native.
Быстрая служба CI важна по двум причинам:
- Чем больше времени работают CI-машины, тем больше они стоят.
- Чем дольше выполняются задания CI, тем длиннее цикл разработки.
Поэтому важно постараться минимизировать время, которое среда CI тратит на сборку React Native.
Отключите Flipper для iOS¶
Flipper — это инструмент отладки, поставляемый по умолчанию с React Native, чтобы помочь разработчикам отлаживать и профилировать свои приложения React Native. Однако Flipper не требуется в CI: очень маловероятно, что вам или кому-то из ваших коллег придется отлаживать приложение, созданное в среде CI.
Для iOS-приложений Flipper собирается каждый раз, когда собирается фреймворк React Native, и на сборку может потребоваться некоторое время, а это время вы можете сэкономить.
Начиная с React Native 0.71, мы ввели новый флаг в Podfile шаблона: флаг NO_FLIPPER
.
По умолчанию флаг NO_FLIPPER
не установлен, поэтому Flipper будет включен по умолчанию в ваше приложение.
Вы можете указать NO_FLIPPER=1
при установке ваших iOS pods, чтобы указать React Native не устанавливать Flipper. Обычно команда выглядит следующим образом:
1 2 |
|
Добавьте эту команду в вашу среду CI, чтобы пропустить установку зависимостей Flipper и тем самым сэкономить время и деньги.
Обработка переходных зависимостей¶
Ваше приложение может использовать некоторые библиотеки, которые зависят от Flipper pods. Если это так, то отключения flipper с помощью флага NO_FLIPPER
может быть недостаточно: ваше приложение может не собраться в этом случае.
Правильный способ справиться с этой проблемой — добавить пользовательскую конфигурацию для react native, указав приложению правильно установить переходную зависимость. Для этого:
- Если у вас его еще нет, создайте новый файл
react-native.config.js
. - Исключите явно переходную зависимость из
зависимостей
, когда флаг включен.
Например, библиотека react-native-flipper
— это дополнительная библиотека, которая зависит от Flipper. Если ваше приложение использует ее, вам нужно исключить ее из зависимостей. Ваш react-native.config.js
будет выглядеть следующим образом:
react-native.config.js | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 |
|