티스토리 뷰
강의 유튜브 주소 :
https://www.youtube.com/watch?v=V3QsSrldHqI&list=PLcqDmjxt30RtqbStQqk-eYMK8N-1SYIFn
여기서 필요한건 react-hot-loader, webpack-dev-server 모듈이다.
webpack-dev-server 모듈은 webpack.config.json을 읽어 빌드하고 서버로 유지해주는 역할이라고 한다.
로컬에서 서버를 돌릴 수 있다.
react-hot-loader는 실시간으로 변경된 것을 확인할 수 있게 해준다.
모듈 install
// cmd
npm i -D react-hot-loader
npm i -D webpack-dev-server
제로초님 강의에 서버가 공포감을 줄 수 있다고 한다.
나역시도 그랬던 것 같다 ㅎㅎㅎ.
package.json에 script 부분을 수정해준다.
// package.json
// ..
"scripts": {
"dev": "webpack-dev-server --hot"
},
// ..
npm run dev하면 webpack-dev-server와 react-hot-loader가 실행되게 해준다.
그리고 webpack.config.json으로 가서 plaugins를 작성해준다.
// webpack.config.json
module : {
rules : [{
test : /\.jsx/,
loader : 'babel-loader',
options : {
presets : ['@babel/preset-env', '@babel/preset-react'],
plugins : [
'@babel/plugin-proposal-class-properties',
// 이 부분!!
'react-hot-loader/babel',
]
}
}]
},
output의 publicPath도 수정해준다.
// webpack.config.json
output : {
path : path.join(__dirname, 'dist'),
filename : 'app.js',
// 이부분!
publicPath : '/dist'
}
app.js (entry에서 최초로 실행되는)에 react-hot-loader를 require해서 사용한다.
// app.js
import React from 'react';
import ReactDOM from 'react-dom';
// react-hot-loader/root 로 입력해야한다. root를 입력하는건 그렇게 만들어졌기 때문이라고..ㅎ
import { hot } from 'react-hot-loader/root';
import Example from './Example';
// hot메서드에 Example 컴포넌트를 파라미터로 넘긴다.
const Hot = hot(Example);
// <Hot />을 컴포넌트 넣던 부분에 넣어준다.
ReactDOM.render(<Hot />, document.querySelector('#root'));
index.html에 app.js를 output한 파일을 볼 수 있도록 수정해준다.
path는 실제경로, publicPath는 대충 가상경로라고 생각하면된다고한다. // express.static과 비슷한기능이라고하는데?
// index.html
- <script src="./dist/app.js"></script>
+ <script src="./dist/app.js"></script>
그리고 아까 저장한 dev가 실행될 수 있도록 또는 npx webpack하면 실행된다.
// cmd
npm run dev
// 또는
npx webpack
자동으로 반영이 되는 것을 확인해보자.
.js를 수정하고 수정된 것을 확인해보자.
하지만.!
ReactDOM.render하는 js는 캐치하지 못하니 주의하자. 이곳에서 require하는 부분들만 캐치가 가능하다.
그래서 ReactDOM을 작성하는 entry부분은 서버를 내렸다가 올려야한다.
'React' 카테고리의 다른 글
React 기초 학습 8.배열에 push할때 (Zerocho님 강의 학습 의식의 흐름대로 노트 정리) (0) | 2020.04.21 |
---|---|
React 기초 학습 7.자식 컴포넌트로 props 전달 / 주석 (Zerocho님 강의 학습 의식의 흐름대로 노트 정리) (0) | 2020.04.21 |
React 기초 학습 6.반복문에서 key (Zerocho님 강의 학습 의식의 흐름대로 노트 정리) (0) | 2020.04.21 |
React 기초 학습 5.클래스를 Hooks로 바꿔보자 (Zerocho님 강의 학습 후기) (0) | 2020.04.21 |
React 기초 학습 3. 필요한 파일들에 대해 알아보자(Zerocho님 강의 학습 의식의 흐름대로 노트 정리) (0) | 2020.04.21 |
React 기초 학습 2. node환경에서 해보자! 필요한 패키지 다운로드.(Zerocho님 강의 학습 의식의 흐름대로 노트 정리) (0) | 2020.04.18 |
React 기초 학습 1. HTML에서 React를 사용해보자.(Zerocho님 강의 학습 의식의 흐름대로 노트 정리) (0) | 2020.04.10 |
ReactJS로 웹 서비스 만들기 학습 정리 (0) | 2018.08.12 |
- Total
- Today
- Yesterday
- 자바스크립트
- 메서드
- React
- 프론트엔드
- 타입스크립트
- TypeScript
- vue.js
- 코딩애플
- html
- 통신
- 차이
- VUE
- 제로초
- Method
- 리액트
- 제이쿼리
- css
- frontend
- Study
- 공부
- 뷰
- 브라우저
- JavaScript
- Article
- 기초
- 아티클
- jQuery
- 강의
- 프로젝트
- JS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |