Proje: Okul B2B App · Hub: Okul B2B App — Architecture
Build Tooling — Metro, Babel, TypeScript
Metro Config (metro.config.js)
config.transformer = {
inlineRequires: true // Lazy module yükleme — başlangıç performansı
};Expo varsayılanları üzerine minimal değişiklik. inlineRequires: true ile modüller ilk kullanımda yüklenir.
Babel Config (babel.config.js)
presets: ['babel-preset-expo'],
plugins: [
'./babel-plugin-disable-font-scaling.js', // Text font scaling devre dışı
'react-native-worklets/plugin', // Reanimated 4 worklets (LAST!)
]Kritik: react-native-worklets/plugin son plugin olmalı.
TypeScript Config
- Strict mode aktif
baseUrl: "."vepaths: { "@/*": ["./*"] }ile@/aliastypedRoutes: true— Expo Router tip güvenliği
Yeni Mimari (New Architecture)
Her iki platform: newArchEnabled: true (expo-build-properties)
- JSI (JavaScript Interface) üzerinden native modules
- Fabric renderer
- TurboModules
Bağımlılık Yönetimi
package-lock.jsoncommit’lendi (yarn değil, npm)- EAS build’da
node 20.18.0pinlendi (eas.json’da"node": "20.18.0") - Native deps exact version (^ yok)
Related
- sistem-genel-bakis — tech stack
- build-ve-ota-update — EAS build konfigürasyonu