react-native.config.js.
Overview
Thereact-native.config.js file (formerly react-native.config.js) allows you to configure:
- Native dependencies (autolinking)
- Platform-specific settings
- Asset directories
- CLI plugin behavior
Configuration File
Createreact-native.config.js in your project root:
react-native.config.js
Project Configuration
iOS Settings
react-native.config.js
Android Settings
react-native.config.js
Asset Management
Custom Asset Directories
react-native.config.js
Font Linking
react-native.config.js
Dependency Configuration
Configure autolinking behavior for native dependencies.Disable Autolinking for Specific Package
react-native.config.js
Custom Linking Configuration
react-native.config.js
Exclude Dependencies
react-native.config.js
Custom Commands
Add custom CLI commands:react-native.config.js
Platform-Specific Configurations
iOS Pod Configuration
react-native.config.js
Android Gradle Configuration
react-native.config.js
Common Use Cases
Monorepo Setup
react-native.config.js
Custom Asset Paths
react-native.config.js
Multiple App Variants
react-native.config.js
Disable Flipper
react-native.config.js
Autolinking
How Autolinking Works
React Native CLI automatically links native dependencies based on:- Package’s
react-native.config.js - Your project’s
react-native.config.js - Convention-based discovery
View Autolinking Config
Debug Autolinking
Library Configuration
If you’re building a React Native library, configure it for autolinking:react-native.config.js
Environment-Specific Config
react-native.config.js
Reactotron Configuration
Integrate Reactotron with custom config:react-native.config.js
Troubleshooting
Dependency Not Linking
Solution:- Check config:
- Verify dependency has proper config
- Try manual linking if needed
Assets Not Found
Solution:react-native.config.js
CocoaPods Issues
Solution:react-native.config.js
Gradle Build Fails
Solution: Ensure Android config points to correct paths:Migration from Old Config
If you have oldrn-cli.config.js:
Old Format
rn-cli.config.js
New Format
react-native.config.js
metro.config.js.
Best Practices
Keep Config Minimal
Keep Config Minimal
Only include necessary configuration. React Native’s defaults work for most cases.
Document Custom Settings
Document Custom Settings
Add comments explaining why custom configuration is needed:
Use Environment Variables
Use Environment Variables
Make config environment-aware:
Version Control
Version Control
Commit
react-native.config.js to version control.Related Configuration
Metro Config
For bundler configuration, usemetro.config.js:
metro.config.js
Babel Config
For JavaScript transformation, usebabel.config.js:
babel.config.js
TypeScript Config
For TypeScript, usetsconfig.json:
tsconfig.json
CLI Commands Reference
View Config
Doctor (Check Setup)
Info (Environment Info)
Advanced Configuration
Custom Plugin
react-native.config.js
Hooks
react-native.config.js
Next Steps
Metro Config
Configure Metro bundler
CLI Overview
All available CLI commands
Native Modules
Build native modules
Autolinking
Understanding autolinking