Skip to content

Commit d653c2b

Browse files
committed
리액트 샘플 추가
1 parent cff0401 commit d653c2b

File tree

9 files changed

+6508
-0
lines changed

9 files changed

+6508
-0
lines changed

react-sample/babel.config.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module.exports = {
2+
presets: [
3+
// TODO: 리액트 프리셋을 추가하세요.
4+
"@babel/preset-react"
5+
],
6+
plugins: [
7+
// TODO: 리액트 핫로더 플러그인을 추가하세요.
8+
"react-hot-loader/babel"
9+
]
10+
};

react-sample/package-lock.json

Lines changed: 6390 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

react-sample/package.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"name": "react-sample",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"start": "webpack-dev-server --progress",
8+
"build": "webpack --progress"
9+
},
10+
"keywords": [],
11+
"author": "",
12+
"license": "ISC",
13+
"dependencies": {
14+
"react": "^16.12.0",
15+
"react-dom": "^16.12.0"
16+
},
17+
"devDependencies": {
18+
"@babel/core": "^7.7.7",
19+
"@babel/preset-react": "^7.7.4",
20+
"css-loader": "^3.4.2",
21+
"html-webpack-plugin": "^3.2.0",
22+
"react-hot-loader": "^4.12.18",
23+
"style-loader": "^1.1.2",
24+
"webpack": "^4.41.5",
25+
"webpack-dev-server": "^3.10.1"
26+
}
27+
}

react-sample/src/Hello.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import * as React from 'react';
2+
import { hot } from 'react-hot-loader';
3+
import Name from './Name';
4+
5+
class Hello extends React.Component {
6+
render() {
7+
return <h1>Hello <Name /></h1>;
8+
}
9+
}
10+
11+
export default hot(module)(Hello);

react-sample/src/Name.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.Name {
2+
color: blueviolet;
3+
}

react-sample/src/Name.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import * as React from 'react';
2+
import './Name.css';
3+
4+
const Name = () => <span className="Name">World</span>;
5+
6+
export default Name;

react-sample/src/app.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import * as React from 'react';
2+
import * as ReactDOM from 'react-dom';
3+
4+
import Hello from "./Hello.js";
5+
6+
ReactDOM.render(
7+
<Hello />,
8+
document.getElementById("root")
9+
);

react-sample/src/index.html

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
7+
<title>Document</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
</body>
12+
</html>

react-sample/webpack.config.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
const path = require("path");
2+
const HtmlWebpackPlugin = require("html-webpack-plugin");
3+
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
4+
5+
module.exports = {
6+
mode: "development",
7+
entry: {
8+
main: "./src/app.js"
9+
},
10+
output: {
11+
filename: "[name].js",
12+
path: path.resolve("./dist")
13+
},
14+
devServer: {
15+
overlay: true,
16+
stats: "errors-only",
17+
// TODO: react-hot-loader를 사용하도록 구성하세요.
18+
hot: true
19+
},
20+
module: {
21+
rules: [
22+
// TODO: 리액트 프리셋후에 바벨 로더를 설정하세요.
23+
{
24+
test: /\.js$/,
25+
exclude: /node_modules/,
26+
loader: "babel-loader" // 바벨 로더를 추가한다
27+
},
28+
{
29+
test: /\.css$/,
30+
use: ["style-loader", "css-loader"]
31+
}
32+
]
33+
},
34+
plugins: [
35+
new CleanWebpackPlugin(),
36+
new HtmlWebpackPlugin({
37+
template: "./src/index.html"
38+
})
39+
]
40+
};

0 commit comments

Comments
 (0)