Create a React Application without CRA

pixgram·2022년 8월 17일
0

리엑트 프로젝트를 CRA(Create React App)명령어를 통해 시작을 하면 세팅이 거의 되어 있어서 좋지만, 프로젝트 후반부에 무언가 설정을 커스텀하게 바꾸려면 세팅 파일이 숨어(?) 있어서 굉장히 어렵다. 물론, 끄집어 낼 수 있지만 그렇게 되면 파일이 복잡하기만 하고 에디터에서 오류가 나고 여러모로 좋은 상황이 아니게 된다.

웹펙 기반으로 처음부터 커스텀하게 세팅한다면 좋을것이다.

// install node modules
npm i react
npm i react-dom
npm i -D webpack
npm i -D webpack-cli
npm i -D webpack-dev-server
npm i -D html-webpack-plugin
npm i -D babel-loader
npm i -D @babel/core
npm i -D @babel/preset-react
npm i -D @babel/preset-env

// package.json
{
	"scripts": {
		"start": "webpack-dev-server --mode development --open --hot",
		"build": "webpack --mode production"
	}
}


// webpack.config.js
const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin')

module.exports = {
	entry: './src/index.js',
	output: {
		filename: 'bundle.js'
	},
	module: {
		rules: [
			{
				test: /.js$/,
				exclude: /node_modules/,
				use: {
					loader: 'babel-loader',
					options: {
						presets: ['@babel/preset-env', '@babel/preset-react']
					}
				}
			}
		]
	},
	plugins: [
		new HTMLWebpackPlugin({
			tempalte: './src/index.html'
		})
	]
}

// index.js
import React from 'react'
import ReactDom from 'react-dom'
import App from './components/App'

ReactDom.render(<App />, document.getElementById('root'))

참고

profile
Interactive Front-end Developer and WebGL Artist

0개의 댓글