React ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ๊ธฐ.
CRA๋ Vite์ ๋์ ์์ด ์์ํ๊ฒ React ํ๊ฒฝ์ ๊ตฌ์ถํด๋ณด๋ฉด์ ๊ฒช์ ์ํ์ฐฉ์ค์ ํด๊ฒฐ ๊ณผ์ ์ ๊ธฐ๋กํฉ๋๋ค.
CDN์ผ๋ก ์ถ๊ฐํ๋ ์ด์ ?
1. ๋น ๋ฅธ ์์ - npm install ์์ด React ๊ฐ๋ฐ ํ๊ฒฝ์ ๋น ๋ฅด๊ฒ ์ธํ
2. UMD ๋ฒ์ - ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์ ๋ฐ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ํ์์ผ๋ก ๋น๋๋จ
3. ์นํฉ์ด๋ ๋ฐ๋ฒจ ๊ฐ์ ๋น๋ ๋๊ตฌ ์์ด๋ React ์ฌ์ฉ ๊ฐ๋ฅ
// SyntaxError: Unexpected token '<'
// JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ด ์๋, ํ์ฅ ๋ฌธ๋ฒ์ด์๋ค...
const App = () => React.createElement('h1', null, 'Hello, React without CRA!');
ReactDOM.createRoot(document.getElementById('root')).render(React.createElement(App));
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel">
"transformScriptTags.ts:253 You are using the in-browser Babel transformer..."
๋ธ๋ผ์ฐ์ ์์ ์ค์๊ฐ ๋ณํ์ ๋นํจ์จ์ ์ด๋ผ๊ณ ๊ฒฝ๊ณ ๊ฐ ๋ฌ๋ค!
npm init -y
npm install --save-dev @babel/core @babel/cli @babel/preset-react
// .babelrc
{
"presets": ["@babel/preset-react"]
}
"์ ๊น... ํ์ผ์ด 100๊ฐ ์ด์์ด๋ฉด? ์ค์ ๋ธ๋ผ์ฐ์ ๋ ํ ๋ฒ์ 6๊ฐ์ฉ ๋คํธ์ํฌ ์์ฒญ์ ๊ฐ์ ธ์ค๋๋ฐ,
์ฌ์ฉ์๊ฐ ๊ตฌ๋ฅ๋ค๋ฆฌ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด... ์ด๋กํ์ง?"
npm install --save-dev webpack webpack-cli babel-loader
module.exports = {
entry: "./src/app.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "bundle.js",
},
// ...
}
// ํ์ผ๋ช
์ ํด์๊ฐ ์ถ๊ฐ
filename: "bundle.[contenthash].js"
npm install --save-dev html-webpack-plugin
npm install --save-dev clean-webpack-plugin
devServer: {
static: {
directory: path.join(__dirname, "dist"),
},
port: 9000,
open: true,
hot: true,
}
# .env.development
APP_API_URL=https://dev-api.example.com
# .env.production
APP_API_URL=https://api.example.com
npm install --save-dev dotenv-webpack cross-env
ํธ๋์คํ์ผ๋ฌ์ ๋ฒ๋ค๋ฌ์ ์ฐจ์ด
๋ธ๋ผ์ฐ์ ์บ์ ์ ๋ต
ํ๊ฒฝ๋ณ ์ค์ ๊ด๋ฆฌ
์นํฉ ํ๋ฌ๊ทธ์ธ ์์คํ
์ง์ ๋ค๋ฃจ์ด๋ณธ React ํ๊ฒฝ ๊ตฌ์ถ๊ธฐ...์ ๋ฆฌํ๊ณ ์ฉ์ด ์ฐพ๊ณ , ๊ฒ์ํ๋ค๋ณด๋ ์๊ฐ๋ณด๋ค ์ค๋๊ฑธ๋ ธ์ง๋ง
๋๋ถ์ CRA๋ฐ Vite๊ฐ ํด์ฃผ๋ ์ผ๋ค์ ์๋ฒฝํ๊ฒ ์ดํดํ๊ฒ ๋๋ค!
์ด์ ๋ 'npx create-react-app'๋ 'yarn create vite xxxx โtemplate react'์ ์
๋ ฅํ ๋๋ง๋ค ๊ฐ์ฌํ ๋ง์์ด ๋ค ๊ฒ ๊ฐ๋ค... ๐
๋ํ ํ๋ฌ๊ทธ์ธ ๋ง๋์ ๋ถ๋ค๊ป๋ ์ฌ์ฌํ ๊ฐ์ฌ์ ๋ง์์....!
๋์ค์ ์ด๋ค ํ๋ฌ๊ทธ์ธ๋ค์ด ์์์ ธ๋์ฌ์ง ๊ธฐ๋๋๋ค!!