๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Frontend

CRA(Create React App) ์›นํŒฉ ์„ค์ •ํ•˜๊ธฐ

CRA๋Š” ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ธํŒ… ๋ฐ ๋ณต์žกํ•œ ๊ณผ์ •์„ ํ•ด๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ™˜๊ฒฝ์˜ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yarn create react-app my-app --template typescript

์ด๋ ‡๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ๋ฐ”๋ฒจ์ด๋‚˜ ์›นํŒฉ ๊ฐ™์€ ์ข…์†๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ์„ค์ •์ด ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ˆจ๊ฒจ์ง„ ์ข…์†์„ฑ ๋ฐ ์„ค์ •์„ ํ™•์ธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” eject ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด ๋ฐฉ๋ฒ•์€ ๋‹จ๋ฐฉํ–ฅ ํ”„๋กœ์„ธ์Šค๋กœ ํ•œ๋ฒˆ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์‹œ ์›์ƒํƒœ๋กœ ๋ณต๊ตฌํ•  ์ˆ˜ ์—†๊ณ  ์ดํ›„ ์ง์ ‘ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๊ธฐ์กด ์„ค์ •์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ์„ค์ •๋งŒ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด ๋ฐฉ๋ฒ•์€ ๊ธฐ์กด ์„ค์ •๋“ค์„ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ์›ํ•˜๋Š” ์„ค์ •๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ ๋ฐ ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๊ธฐ ์ข‹์Šต๋‹ˆ๋‹ค.

 

CRA๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒจํ‚ค์ง€๋“ค ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

customize-cra(eject ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  webpack.config์™€ ๊ฐ™์€ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.)

 

GitHub - arackaf/customize-cra: Override webpack configurations for create-react-app 2.0

Override webpack configurations for create-react-app 2.0 - GitHub - arackaf/customize-cra: Override webpack configurations for create-react-app 2.0

github.com

Install

yarn add customize-cra react-app-rewired --dev

 

  • ์•„๋ž˜์™€ ๊ฐ™์ด config-overrides.js (package.json๊ณผ ๊ฐ™์€ ๋ ˆ๋ฒจ) ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
const { override, addWebpackAlias } = require('customize-cra');
const path = require('path');

module.exports = override(
  addWebpackAlias({
    '@': path.resolve(__dirname, 'src'),
  })
);
  • package.json์˜ react-scripts -> react-app-rewired๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
  ...
  "scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "test": "react-app-rewired test",
    "eject": "react-scripts eject"
  },
  ...

 

yarn start๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•ด ๋ณด๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.