diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000000000000000000000000000000000000..fbd6da0e13a3e6cf5c7346d9502b04cc6bd4a4bf --- /dev/null +++ b/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + "@babel/preset-env", + "@babel/preset-react" + ] +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000000000000000000000000000000000000..f088ade9c251c56972872a0fa8c38d9d6bf7f27e --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +package-lock.json + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/dist/index.html b/dist/index.html deleted file mode 100644 index 7fbf57365d4345e919777cc372b298c0fb6ef35d..0000000000000000000000000000000000000000 --- a/dist/index.html +++ /dev/null @@ -1,11 +0,0 @@ -<!doctype html> -<html> - <head> - <title> muiBasic </title> - <meta charset="UTF-8"/> - </head> - <body> - <div id="app"></div> - <script src="./bundle.js" type="text/javascript"></script> - </body> -</html> diff --git a/package.json b/package.json index 7063b60cab03b80ba23b5d0bf5e9d31fc9fc93ab..721d32000468f819a2a80c4a497c6891b68b254a 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,11 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "webpack": "^5.73.0", - "webpack-cli": "^4.10.0" + "webpack-cli": "^4.10.0", + "webpack-dev-server": "^4.13.2" }, "scripts": { + "start": "webpack-dev-server --open --mode development --port 3000", "build": "webpack --mode development", "test": "echo \"Error: no test specified\" && exit 1" }, diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..479621014dad5b3b6cf9250e8ed3ed4f3a92aae9 --- /dev/null +++ b/public/index.html @@ -0,0 +1,12 @@ +<!doctype html> +<html> + <head> + <title> muiBasic </title> + <meta charset="UTF-8"/> + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> + </head> + <body> + <div id="app"></div> + <script src="./app.bundle.js" type="text/javascript"></script> + </body> +</html> diff --git a/webpack.config.js b/webpack.config.js index 794cb598ae04c81a5dec0774c581030763da3b23..da15307110cfaa9a89748fc499c99305516746d3 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,33 +1,28 @@ const path = require('path'); +const webpack = require('webpack'); module.exports = { - // enntry file - entry: './src/index.js', - // 컴파일 + 번들링된 js 파일이 저장될 경로와 이름 지정 - output: { - path: path.resolve(__dirname, 'dist'), - filename: 'bundle.js' - }, - module: { - rules: [ - { - test: /\.js$/, - include: [ - path.resolve(__dirname, 'src') - ], - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: ['@babel/preset-env', '@babel/preset-react'], - plugins: ['@babel/plugin-proposal-class-properties'] - } - } - } + entry: { + app: './src/index.js' + }, + output: { + filename: '[name].bundle.js', + path: path.resolve(__dirname, 'public') + }, + module: { + rules: [{ + test: /\.(js|jsx)$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader' + } + }] + }, + devServer: { + hot: true, + allowedHosts: 'all', + }, + plugins: [ + new webpack.HotModuleReplacementPlugin() ] - }, - devtool: 'source-map', - // https://webpack.js.org/concepts/mode/#mode-development - mode: 'development' -}; - +}; \ No newline at end of file