실행환경
- MacOS Mojave 10.14.3
- Node 10.15.3
- Webpack 4.30.0
- Babel 7.4.3
- React 16.8.6
React
이전 포스팅에서 진행했던 웹팩, 바벨에 이어 리액트를 적용시켜보도록 하겠다. 리액트에대한 설명은 React 시작하기 에서 확인 하길 바란다.
React 사용 설정
** 프로젝트에 react 설치하기 **
npm install --save-dev react react-dom @babel/preset-react
** 프로젝트에 html 플러그인 설치하기 ** 웹팩 패킹시 html 파일도 찾아 패킹할 수 있도록 함
npm install --save-dev html-webpack-plugin html-loader
** 프로젝트에 css 플러그인 설치하기 ** 웹팩 패킹시 css 파일도 찾아 패킹할 수 있도록 함
npm install --save-dev css-loader style-loader
** babel 설정에 react 추가 **
.babelrc
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
]
}
** webpack 설정에 html, css 플러그인 추가 **
리액트의 jsx, html, css를 패킹할수 있도록 설정해 준다.
webpack.config.js
const HtmlWebPackPlugin = require("html-webpack-plugin");
module.exports = {
module:{
rules:[
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader:"babel-loader"
},
{
test: /\.html$/,
loader:"html-loader"
},
{
test: /\.css$/,
use:["style-loader","css-loader"]
}
]
},
plugins:[
new HtmlWebPackPlugin({
template: "./public/index.html",
filename: "./index.html"
})
]
};
React 사용하기
App.css
.App{
width:100%;
height:200px;
background-color:#d0d0d0;
}
App.js
import React from "react";
import '../css/App.css';
const App = () => {
return (
<div class="App">
<p>Hello, world!</p>
</div>
);
};
export default App;
index.js
import App from "./App.js";
import React from "react";
import ReactDom from "react-dom";
ReactDom.render(<App />, document.getElementById("root"));
index.html
<!DOCTYPE Html>
<html lang='en'>
<head>
<meta charset="UTF-8">
<title>react+webpack+babel</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
이로써 리액트 + 웹팩 + 바벨 환경의 보일러플레이트 구축이 완료되었다.