728x90
728x90
.jsx 파일 사용 하는 방법
들어가며
- 리액트 네이티브(React Native) 프로젝트에서 @.jsx@ 파일을 사용하는 방법을 간단하게 정리해본다.
- 일반적으로 리액트 네이티브에서는 @.js@ 파일만 인식하며, @.jsx@ 파일을 사용하려고 할 경우 에러가 발생한다.

방법
- 현재 리액트 네이티브 프로젝트의 @expo-cli@ 버전에 따라 방법 ① 또는 방법 ②의 방법을 따라한다.
방법 ① : metro.config.js 파일에 확장자 추가하기
- 프로젝트 최상단 경로(@/@)의 메트로 설정 파일(@metro.config.js@)에 다음과 같이 코드를 추가한다.
- 만약 해당 파일이 없을 경우 새로 생성해준다.
/metro.config.js
module.exports = {
resolver: {
sourceExts: [
'jsx',
'js',
'json',
'ts',
'tsx'
],
}
};
메트로(Metro)는 리액트 네이티브(React Native)의 번들러(Bundler)로, 리액트 네이티브 프로젝트에 기본으로 탑재된다. 웹의 Webpack과 같이 JavaScript 파일을 하나로 번들링 해주며, 앱 실행 시 코드 변경사항을 핫 리로드 / 패스트 리프레시(Hot Reload / Fast Refresh) 해준다.
방법 ② : app.json 파일에 확장자 추가하기
- 프로젝트 최상단 경로(@/@)의 앱 설정 파일(@app.json@)에 다음과 같이 코드를 추가한다.
/app.json
{
"expo": {
// ...
"packagerOpts": {
"sourceExts": ["js", "json", "ts", "tsx", "jsx"],
"config": "metro.config.js"
},
// ...
}
}
참고 사이트
Renaming App.js to App.jsx fails when running `expo start` · Issue #191 · expo/expo-cli
Description expo start does not resolve import App from '../../App' to App.jsx When using expo start, the root file set in package.json's main property is ignored. It seems hard coded to node_modul...
github.com
728x90
728x90
'Programming > React Native' 카테고리의 다른 글
| [React Native] BlurView (0) | 2025.05.15 |
|---|---|
| [React Native] 화면 간 데이터 전달하기 (React Navigation) (2) | 2025.05.10 |
| [React Native] React Navigation 라이브러리 (0) | 2025.05.06 |
| [React Native] 뒤로가기 기능 막는 방법 (0) | 2025.04.17 |
| [React Native] StatusBar (react-native, expo-status-bar) (0) | 2025.04.11 |
| [React Native] Platform API (0) | 2025.04.11 |
| [React Native] ScrollView (0) | 2025.04.11 |
| [React Native] KeyboardAvoidingView (0) | 2025.04.10 |