일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- props 개념
- node.js
- react webpack 설치
- react props
- next.js
- react hook
- JSON
- react.js
- react class hook 비교
- react xcode 에러
- javascript 객체리터럴
- prop-types
- node express 라우팅
- React component
- webpack
- 객체 리터럴
- class vs hooks
- javascript
- react
- react refresh 설치
- 화살표함수
- MVC패턴
- 클래스형과 함수형 컴포넌트
- react hook의 종류
- Component
- ES6
- node 특징
- Today
- Total
림찌의 개발일기 💻
[React.js] React refresh (hot loader) 설치(맥os 사용자 주목) 본문
코드를 고치고 실행할때마다 명령어를 사용하는건 참 귀찮은 일이다.
그래서 리액트에선 하나의 플러그인을 설치할 수 있는데, 바로 react-refresh 이다.
이 플러그인은 코드를 고치고 새로고침이나 새로 빌드를 해주지 않더라도 변경된 사항이 자동으로 수정되는 아주 놀라운 기능을 가지고 있다. (이래서 리액트 리액트 하는구만...)
깨알 tips 👀👀
기존엔 react-hot-loader 라고 불리고 설치법도 달랐지만, webpack-cli가 4.xx 로 올라가면서 hot loader 대신 refresh를 사용하게 되었다.
이 편리한 플러그인을 깔아보자!
(webpack의 설정은 [21.04.12]에 작성한 티스토리 글을 기준으로 한다)
1. react-refresh, react-refresh-webpack-plugin 설치
npm i react-refresh @pmmmwh/react-refresh-webpack-plugin -D
우선 `react-refresh`와 `react-refresh-webpack-plugin` 두가지를 개발모드로 설치해준다.
2. dev-server 설치
npm i -D webpack-dev-server
server도 필요하기때문에 dev-server도 설치해준다.
++ 여기서 맥os를 쓰시는 분들 No Xcode or CLT version detected 에러가 뜨신분들 주목!
(더보기를 눌러주세요)
난 개인 공부를 할땐 맥북을 사용한다. 그런데 이번에 dev-server를 설치하면서 한가지 에러를 직면했는데 바로 이것이다.
사실 여기서 에러난줄 모르고 계속 refresh 설치를 진행하다가 자꾸만 'ERR_INVALID_ARG_TYPE' 에러가 뜨길래
다시 처음부터 작업하다가 이곳에서 최초 에러가 발생한걸 발견했다. ;;
이 에러가 왜 생겼는지는 모르겠지만 맥os에 있는 Xcode 에러인 모양이다.
해결 방법은 Xcode를 삭제하고 재설치해주어야한다.
1. Xcode-select 경로 찾기
xcode-select --print-path
기본설정이 /Library/Developer/CommandLineTools 라 대부분 그러하겠지만 확인을 해주자.
2. Xcode-select 제거
sudo rm -r -f /Library/Developer/CommandLineTools
만약 경로가 기본설정으로된 경로가 아니라면 자신의 맥북이 Xcode를 가지고 있는 경로를 입력하면 된다.
3. Xcode-select 재설치
xcode-select --install
자, 이제 삭제후 재설치가 끝이 났다.
설치를 할때 시간이 2시간,1시간으로 뜬다고 당황금지! 금방 몇분대로 떨어진다.
이렇게 Xcode 제거 및 재설치가 완료되고 다시 dev-server를 설치해주면
아까처럼 에러가 뜨지 않고 잘 설치가된다 👏👏👏👏
휴~~~ 이제 다음 단계로 넘어가보자!!!
3. package.json 수정
이제 모든걸 설치해주었으니 package.json을 수정해주자
위처럼 scripts를 수정해준다.
webpack-cli 3.x버전에선 webpack-dev-server --hot 이었다.
4. webpack.config.js 수정
4-1 )이제 앞서 설치한 refresh 플러그인을 불러와주자
변수명은 뭘로해도 상관은 없다. 플러그인을 불러왔다면 plugins:[] 에 입력해주자.
plugins: [
RefreshWebpackPlugin(),
],
위와 같이 plugins에 플러그인을 불러올때 썼던 변수를 입력해 불러와준다. 이제 reload 될때마다 해당 플러그인을 불러올거다.
4-2) 그리고 module 안 rules의 plugin에도 추가해줄게 있다.
babel-loader option의 plugin에 추가해주면, babel-loader가 react-refresh에도 최신문법을 옛날 문법으로 변경해주는 작업을 해준다.
4-3) 아까 설치한 devServer도 설정해주어야 한다.
일단 output과 같은 publicPath를 입력해주고 `hot: true` 옵션을 넣어준다.
devserver의 역할은 webpack.config.js에 적어준대로 빌드 결과물을 돌리고 publicPath에서 설정해준 경로로 결과물을 저장한다.
그리고 변경점이 생기면 저장했던 결과물을 수정해주는 역할을 한다!
자 이제 모든 설정과 설치과정이 끝이 났다.
이제 `npm run dev` 를 입력하면 로컬호스트 주소가 뜨면서 빌드가 성공할 것이다. :)
그리고 내용을 변경하면 자동으로 변경이되는 신기한 현상을 볼 수 있다!
refresh 설치 및 빌드 후기...
webpack 이라는 큰 산을 넘었기에 껌이라고 생각하고 제로초님 강의를 들으며 설치를 해보았다...
그런데 생각지도 못한 xcode 오류탓에 땀이 뻘뻘흘렀다.... 개발자는 영어를 잘해야한다는 말이 뼈져리게 느껴졌다...;ㅁ;
'React' 카테고리의 다른 글
[React.js] 클래스 컴포넌트(class)와 함수형 컴포넌트 (hook) (0) | 2021.06.10 |
---|---|
[React.js] props에 대해 알아 보자. (0) | 2021.05.29 |
[react.js] Component 개념 (0) | 2021.05.02 |
[React.js] Webpack 설치해보기 (0) | 2021.04.12 |
[React.js] 리액트에 대해 알아보자 (0) | 2021.03.10 |