React Native 개발 환경 구성하기

2024. 5. 27. 18:09·React Native/JavaScript
반응형

React는 cra를 통해서 간단하게 설치가 가능하다. 

하지만 React Native 역시 간단 설치가 가능한데, 프로젝트를 본격적으로 진행한 적이 없어서 정리하면서 같이 진행할 

계획이다. 

( 전에 GPT로 만든 React Native는 ... 제외! )

 

Android Studio는 설치가 되어 있다고 생각하고 프로젝트를 진행하겠다. 

그게 아니고 완전 최초 상태라면 공식 문서를 참고해서 Android Studio를 설치하는 것을 먼저 진행하자!

 

개발 환경은 Expo가 아닌 React Native를 사용해서 개발을 할 생각이다. 

Expo는 프로젝트가 생각보다 자유롭지 않아서 개발 시 많은 불편함이 있었다. 

 

그 외에는 Styled-Components, Tanstack Query, Zustand를 기본 베이스로 개발할 생각이다. 

 

프로젝트 설치

npx react-native@latest init [project name]

 

cra와 같은 react-native 명령어를 통해서 프로젝트를 만들면 된다. 

특정 버전을 사용하고 싶다면 --version 옵션을 사용하고 특정 템플릿을 사용하고 싶다면 --template을 사용하면 된다. 

 

eslint 설정

React Native 프로젝트를 설치하면 eslint가 설치되어 있다. 

npm i --save-dev @eslint/create-config@0.4.6

 

하지만 eslint 설치 속성이 버전이 올라가면서 달라졌는데, 이것을 맞추기 위해서 eslint의 create-config를 변경해준다.

npx eslint --init

 

eslint 설정을 위한 명령어이다. 

? How would you like to use ESLint? ... 
  To check syntax only
> To check syntax and find problems

 

명령어를 입력하면 위와 같은 선택지를 제공받는다. 

eslint를 어떻게 사용할 것인가~? 인데 문법 체크만 할 수 있고 문법 체크와 문제 찾기 둘다 가능하다. 

 

본인은 문제 찾기도 함께 사용하려고 한다. 

? What type of modules does your project use? ... 
> JavaScript modules (import/export)
  CommonJS (require/exports)
  None of these

 

다음으론 모듈을 어떤 방식으로 사용하는지 물어보는데 import/export 방식을 사용하므로 해당 옵션을 바로 선택

? Which framework does your project use? ...       
> React
  Vue.js
  None of these

 

이제 프레임워크를 사용하는지 물어보는데 React를 사용한다고 선택한다.

? Does your project use TypeScript? ...
  No
> Yes

 

타입스크립트를 사용하는지 물어보는데 타입스크립트를 사용하지 않는 환경이다. 

? Where does your code run? ...  (Press <space> to select, <a> to toggle all, <i> to invert selection)
√ Browser
√ Node

 

브라우저 환경에서 코드가 실행되는지 물어보는데 Browser 를 선택해준다. 

만약 ServerSide 환경이라면 Node를 선택하면 된다. 

? How would you like to define a style for your project? ...
> Use a popular style guide
  Answer questions about your style

 

본인만의 eslint 스타일이 있는지 아니면 대중적으로 사용하는 버전을 사용할지 물어보는데 airbnb 설정을 할 것이므로

대중적인 버전을 선택한다.

 

create-config가 최신버전 ( 작성 시 1.1.0 )의 경우 바로 해당 옵션이 없고 바로 설치가 종료되는데, 

0.4.6버전은 eslint 설정을 제공하므로 이 버전을 사용한 것이다. 

? Which style guide do you want to follow? ...
> Airbnb: https://github.com/airbnb/javascript
  Standard: https://github.com/standard/standard        
  Google: https://github.com/google/eslint-config-google
  XO: https://github.com/xojs/eslint-config-xo

 

airbnb를 사용할 것이므로 선택해준다. 

? What format do you want your config file to be in? ... 
> JavaScript
  YAML
  JSON

 

설정 파일을 js로 할것인지, yaml 또는 json으로 할 것인지 물어보는 부분인데 react-native 초기 설정으로 미리 

js 파일이 있으므로 JavaScript를 선택해준다. 

eslint-config-airbnb@latest eslint@^7.32.0 || ^8.2.0 eslint-plugin-import@^2.25.3 eslint-plugin-jsx-a11y@^6.5.1 eslint-plugin-react@^7.28.0 eslint-plugin-react-hooks@^4.3.0     
? Would you like to install them now? » No / Yes

 

필요한 패키지를 설치할 것인지  물어보는 부분인데 당연히 사용할 것이므로 Yes를 선택해서 설치를 해준다. 


Jest 설정

cra로 react-native를 만들면 jest는 설치되어 있다. 

하지만 그 외 testing-library를 사용해서 테스트 코드를 작성할 때 조금 더 쉽게 하려고 한다. 

npm i --save-dev @testing-library/react-native @testing-library/jest-native

 

testing-library/react-native를 통해 react-native용 설치를 진행하고 jest와 매칭을 위해서 jest-navtive를 추가로 

설치해준다. 

 

만약 cra로 만드는게 아니라면 추가로 jest와 react-test-renderer를 설치해주면 된다.

라이브러리 설치가 끝나면 설정 파일을 작성할 시간이다. jest.config.js 파일을 수정해준다. 

module.exports = {
  preset: 'react-native',
};

 

 

이젠 package.json에 테스트용 스크립트를 만들어준다. 

"scripts": {
    // ...
    "test": "jest"
},

 

끝나면 npm run test 명령어를 통해서 테스트를 진행할 수 있다. 

 

Styled Components 설정 

npm i --save styled-components

 

styled components를 사용하기 위해서 당연히 styled-components 라이브러리를 설치해준다. 

이후 디버깅 시 class명 확인을 쉽게 할 수있도록 babel-plugin-styled-components를 설치해준다. 

npm i --save-dev babel-plugin-styled-components

 

이때 위와 같은 오류가 발생할 수 있다. npm의 의존성 트리를 해결할 수 없을 때 발생하는 문제로 --legacy-peer-deps

옵션을 사용하면 해결할 수 있다. 

npm install styled-components --legacy-peer-deps
npm i --save-dev babel-plugin-styled-components --legacy-perr-deps

 

설치한 babel 플러그인을 babel.config.js에 설정해준다. 

module.exports = {
  // ...
  plugins: ['babel-plugin-styled-components'],
};

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'React Native > JavaScript' 카테고리의 다른 글

React Native cli Naver 로그인 연동하기  (2) 2024.07.17
React Native cli Kakao 로그인 연동하기  (2) 2024.07.14
[React Native] Chat GPT로 개발하기 - 10일차  (0) 2023.09.10
[React Native] Chat GPT로 개발하기 - 9일차  (0) 2023.09.09
[React Native] 폰트 적용하기  (0) 2023.09.04
'React Native/JavaScript' 카테고리의 다른 글
  • React Native cli Naver 로그인 연동하기
  • React Native cli Kakao 로그인 연동하기
  • [React Native] Chat GPT로 개발하기 - 10일차
  • [React Native] Chat GPT로 개발하기 - 9일차
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    CCNA
    typescript
    redux
    바질
    프로그래머스
    바질 키우기
    타일러영어
    리얼학습일기
    ReactNative
    네트워크
    react
    리얼클래스
    네이버 부스트캠프
    Babel
    CSS
    Node.js
    ChatGPT
    덤프
    javascript
    영어회화
    영어독학
    리액트
    알고리즘
    자바스크립트
    타입스크립트
    다이소
    식물
    next.js
    Docker
    webpack
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
React Native 개발 환경 구성하기
상단으로

티스토리툴바