Чому варто перейти на інші бібліотеки іконок
Перехід з @expo/vector-icons на офіційні пакети @react-native-vector-icons зменшує розмір вашого бандла на 4 МБ або більше. Expo тепер рекомендує цей перехід.
Старий @expo/vector-icons був обгорткою. Він допомагав іконкам працювати з Expo Go та оновленнями over-the-air. Однак ця обгортка додавала складності. Expo доводилося використовувати Babel transforms для забезпечення роботи, що створювало додаткове навантаження на підтримку.
Нові пакети працюють інакше. Вони інтегруються безпосередньо з expo-font і використовують нативні API завантаження шрифтів. Це означає, що вони працюють в Expo Go, збірках для розробки (development builds) та застосунках для продакшну.
Переваги переходу:
- Менші бандли: наш тестовий застосунок зменшився на 4 МБ після зміни імпортів.
- Новіші набори іконок: ви отримуєте доступ до таких наборів, як Lucide.
- Кращі інструменти: ви можете перевіряти типи імен іконок.
- Чистіша конфігурація: вам більше не потрібні складні налаштування аліасів.
Як мігрувати:
- Запустіть codemod: використайте
npx @react-native-vector-icons/codemodу корені вашого проєкту. - Перевірте зміни: запустіть
npx expo doctor, щоб знайти старі пакети. - Перевірте expo-font: переконайтеся, що він встановлений і налаштований. Не додавайте шляхи до шрифтів із
node_modulesбезпосередньо до конфігураційного плагіна.
Зверніть увагу на ці проблеми:
- Конфлікти шрифтів: змішування старих і нових пакетів призводить до появи порожніх квадратів або знаків питання.
- Проблеми із залежностями: деякі бібліотеки очікують старі назви. Перевірте свої залежності, якщо побачите помилки.
Expo оголосить @expo/vector-icons застарілим у майбутньому релізі. Здійснення цієї зміни зараз спростить ваш проєкт і покращить продуктивність.
Джерело: https://dev.to/expo/why-you-should-drop-expovector-icons-for-react-native-vector-icons-3m1n