바벨
바벨(Babel)은 자바스크립트 코드를 변환해주는 도구(컴파일러)입니다. 최신 자바스크립트 문법을 옛날 브라우저에서도 잘 실행될 수 있도록 변환해줍니다
1. 설치:
npm install --save-dev @babel/core @babel/preset-env @babel/preset-react @babel/preset-typescript @babel/plugin-transform-runtime
2. .babelrc 추가 후 아래 내용 입력
더보기
{
"presets": [
"@babel/preset-env",
[
"@babel/preset-react",
{
"runtime": "automatic"
}
],
"@babel/preset-typescript"
],
"plugins": [
[
"@babel/plugin-transform-runtime",
{
"regenerator": true
}
]
]
}
웹팩
웹팩(Webpack)은 여러 개의 파일을 하나로 합쳐주는 도구(번들러)입니다. 🎁
1. 설치
npm install --save-dev webpack webpack-cli webpack-dev-server html-webpack-plugin dotenv-webpack babel-loader style-loader css-loader file-loader @svgr/webpack clean-webpack-plugin
2. webpack.config.js 파일 추가 후 아래 내용 입력
더보기
webpack.config.js
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const Dotenv = require("dotenv-webpack");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
module.exports = (env, argv) => {
const isProduction = argv.mode === "production";
return {
mode: isProduction ? "production" : "development",
entry: path.resolve(__dirname, "src", "index.tsx"),
resolve: {
extensions: [".tsx", ".ts", ".js"],
},
module: {
rules: [
{
test: /\.css$/i,
use: ["style-loader", "css-loader"],
},
{
test: /\.svg$/,
use: [
{
loader: "@svgr/webpack",
options: {
icon: true,
},
},
{
loader: "file-loader",
options: {
name: "[name].[ext]?ver=[hash]",
outputPath: "images",
},
},
],
},
{
test: /\.(png|jpg|gif|jpeg)$/,
use: [
{
loader: "file-loader",
options: {
name: "[name].[ext]?ver=[hash]",
outputPath: "images",
},
},
],
},
{
test: /\.(ts|js)x?$/,
exclude: /node_modules/,
use: [
{
loader: "babel-loader",
},
],
},
],
},
output: {
path: path.resolve(__dirname, "dist"),
chunkFilename: "[name].js?ver=[hash]",
filename: "[name].js?ver=[hash]",
publicPath: "/",
},
devtool: isProduction ? "source-map" : "inline-source-map",
devServer: {
port: 3000,
open: true,
hot: true,
historyApiFallback: true,
},
optimization: {
minimize: isProduction,
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
template: path.resolve(__dirname, "src", "index.html"),
}),
new Dotenv({
allowEmptyValues: true,
systemvars: true,
}),
],
};
};
3. src 파일 index.html 파일 추가 후 내용 입력

4. main.tsx 'root' > 'content' 수정

'2024~ > React' 카테고리의 다른 글
| [타입스크립트] 플레이리스트 추가 (0) | 2025.06.15 |
|---|---|
| [리액트] TanStack Query (구 React Query) (0) | 2025.06.15 |
| [타입스크립트] 스포티파이 만들기 (1) | 2025.06.02 |
| [타입스크립트] 교차타입 (1) | 2025.06.01 |
| [타입스크립트] 고급타입 - any, unknown, void, never~ (0) | 2025.05.31 |
