React Native
React Native 절대경로 설정하기
kokoball-dev
2024. 5. 31. 19:30
728x90
이번 글은 React Native에서 절대경로 설정하는 방법에 대해 작성하려고 합니다.
RN은 워낙 버전 크러쉬로 악명 높지만 절대경로 설정 방법은 기존의 React 웹 프로젝트와 크게 다른 점은 없기 때문에 쉽게 설정할 수 있습니다.
설치
우선 babel 관련 프리셋과 플러그인을 설치해 줍니다.
// npm
npm install --save-dev @babel/preset-react
// yarn
yarn add @babel/preset-react --dev
그 다음 플러그인을 사용해요 경로 별칭(alias)을 설정해 주기 위해 Babel의 module resolver을 개발 의존성으로 설치합니다.
// npm
npm install --save-dev babel-plugin-module-resolver
// yarn
yarn add --dev babel-plugin-module-resolver
설정파일 세팅하기
그 다음 babel.config.js 파일에서 추가한 프리셋과 alias를 설정합니다.
저는 '@' 를 src 기준으로 설정하여 그 안에 있는 폴더들도 같이 설정해 주었습니다.
module.exports = {
presets: [
'module:metro-react-native-babel-preset',
'@babel/preset-react',
'@babel/preset-typescript',
],
plugins: [
[
'module-resolver',
{
root: ['./src'],
extensions: [
'.ios.ts',
'.android.ts',
'.ts',
'.ios.tsx',
'.android.tsx',
'.tsx',
'.jsx',
'.js',
'.json',
],
alias: {
'@': './src',
'@assets': './src/assets',
'@components': './src/components',
'@constants': './src/constants',
'@hooks': './src/hooks',
'@server': './src/server',
'@type': './src/type',
'@utils': './src/utils',
'@store': './src/store',
},
},
],
'react-native-reanimated/plugin',
],
};
추가로 alias와 같이 tsconfig.json도 설정해 주면 됩니다.
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react-native",
"lib": ["es6"],
"moduleResolution": "node",
"noEmit": true,
"strict": true,
"target": "esnext",
"baseUrl": "./src",
"paths": {
"@assets/*": ["assets/*"],
"@components/*": ["components/*"],
"@constants/*": ["constants/*"],
"@hooks/*": ["hooks/*"],
"@server/*": ["server/*"],
"@types/*": ["types/*"],
"@utils/*": ["utils/*"],
"@store/*": ["store/*"],
}
},
"exclude": [
"node_modules",
"babel.config.js",
"metro.config.js",
"jest.config.js"
],
"extends": "@tsconfig/react-native/tsconfig.json"
}
테스트하기
아래 사진과 같이 '@/~' 형식으로 잘 불러와주는지 테스트하면 됩니다.
끝
728x90