일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- useEffect
- 타입스크립트
- 자바스크립트
- 비동기
- react
- TypeScript
- 리액트
- CSS
- 코린이
- 코딩초보
- React Native
- 참조자료형
- async
- redux
- 프론트엔드
- 코딩독학
- 코딩기초
- git
- SasS
- JavaScript
- react-router
- 사용하는 이유
- scss
- 코딩공부
- 리액트 네이티브
- http
- html기초
- Vue3
- 리덕스
- 깃
Archives
- Today
- Total
맨 땅에 프론트엔드 개발자 되기
React Native 프로젝트 폴더 구조 셋팅 & 절대 경로 설정 & 정적파일(이미지) 경로 설정 본문
코딩 공부 일지/React Native
React Native 프로젝트 폴더 구조 셋팅 & 절대 경로 설정 & 정적파일(이미지) 경로 설정
헬로코딩 2022. 11. 9. 14:31728x90
* 예시 프로젝트는 React Native CLI로 만들어진 프로젝트임을 참고 바랍니다.
React Native 개발 환경 설정은 공식 문서를 참고하세요.
React Native 프로젝트 폴더 구조 셋팅
react-native init 명령어로 프로젝트를 시작하면 아래와 같은 폴더 구조를 기본으로 셋팅해준다.
해당 프로젝트 루트에 components 폴더와 assets 폴더를 구성할 수도 있지만 app과 관련된 것들을 app 폴더에서 관리해주기 위해 아래와 같이 폴더 구조를 셋업했다.
app 폴더 하위로 App.js 파일을 옮기고, App.js 파일과 같은 위치에 assets, components, screens, utils 와 같은 폴더를 구성했다. 그리고 assets 폴더 하위로 fonts와 images 폴더를 두었다.
정적파일(이미지) 경로 설정
이미지 파일이나 폰트 파일과 같이 정적 파일을 상대 경로로 import 하지 않기 위해 각 폴더 하위에 package.json 파일을 생성하고, 아래와 같이 작성했다.
{
"name":"images",
"version":"0.0.1"
}
{
"name":"assets",
"version":"0.0.1"
}
이렇게 만들어두면 아래와 같이 정적파일 경로를 불러올 수 있다.
<Image
style={styles.backgroundImage}
source={require('images/image02.jpg')}
/>
import 시 절대 경로 설정하기
- babel-plugin-module-resolver 설치하기
$ npm install --save-dev babel-plugin-module-resolver
- babel.config.js 에서 alias 설정하기
babel.config.js 파일을 아래와 같이 수정한다.
module.exports = {
presets: ['module:metro-react-native-babel-preset'],
plugins: [
[
'module-resolver',
{
root: ['./src'],
extensions: [
'.ios.ts',
'.android.ts',
'.ts',
'.ios.tsx',
'.android.tsx',
'.tsx',
'.jsx',
'.js',
'.json',
],
alias: {
'@': './src',
'@components': './src/components',
'@screens': './src/screens',
'@assets': './src/assets',
},
},
],
],
};
- tsconfig.json 파일 수정
TypeScript를 사용 중이라면, tsconfig.json 파일도 아래와 같이 수정해주어야 에러를 막을 수 있다.
{
"extends": "@tsconfig/react-native/tsconfig.json", /* Recommended React Native TSConfig base */
"compilerOptions": {
..., // 다른 옵션들...
"baseUrl": "./src",
"paths": {
"@/*": ["./*"],
"@components/*": ["components/*"],
"@screens/*": ["screens/*"],
"@assets/*": ["assets/*"],
} /* Skip type checking all .d.ts files. */
}
}
728x90
'코딩 공부 일지 > React Native' 카테고리의 다른 글
RNCSafeAreaProvider was not found in the UIManager 에러 해결 (0) | 2022.11.10 |
---|---|
React Native 버전 0.60 이상 react-native-vector-icons 설치방법 (0) | 2022.11.10 |
React Native를 사용하는 이유 (장단점) (0) | 2022.11.08 |