ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฆฌ์•กํŠธ ๋น… ์บ˜๋ฆฐ๋”(RBC)๋ฅผ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๊ธฐ ์ „, ํŒŒ์•… ๊ฒธ ์—ฐ์Šต์œผ๋กœ ๊ฐœ์ธ ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค.

์ดˆ๊ธฐ ์„ธํŒ…๋ถ€ํ„ฐ ๋‚œ๊ด€์ด ์‹œ์ž‘๋˜๋Š”๋ฐ...

ํ˜‘์—… ์‹œ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ด๋ณธ๋‹ค.


 

์ง„ํ–‰ ์ƒํ™ฉ

  1. ๋ฆฌ์•กํŠธ ๋น… ์บ˜๋ฆฐ๋” ์„ค์น˜
  2. pnpm dev
  3. ์˜ค๋ฅ˜ : You forgot to add 'mini-css-extract-plugin' plugin

  •  'please read' ๋งํฌ๋กœ ๋“ค์–ด๊ฐ€๋ณด๋‹ˆ 'CSS ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ JS ํŒŒ์ผ ๋ณ„๋กœ CSS ํŒŒ์ผ์„ ์ƒ์„ฑ' ๋ฌด์Šจ ๋ง??
    • Webpack์€ ๋ชจ๋“  ์ฝ”๋“œ(JS, CSS ๋“ฑ)๋ฅผ ๋ฒˆ๋“ค๋งํ•ด์„œ ํ•˜๋‚˜์˜ JavaScript ํŒŒ์ผ๋กœ ๋งŒ๋“ฌ
    • ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CSS๊ฐ€ JS ๋ฒˆ๋“ค์— ํฌํ•จ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ๋”ฉํ•  ๋•Œ ์ตœ์ ํ™”๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ

 

mini-css-extrant-plugin ์ ์šฉ

 

[๋ฆฌ์•กํŠธ ํ™˜๊ฒฝ] 

์•„๋ž˜๋Š” ๋ฆฌ์•กํŠธ ํ™˜๊ฒฝ์—์„œ mini-css-extrant-plugin์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

๐Ÿ“์ž‘๋™ ๋ฐฉ์‹

  • CSS ์ฝ”๋“œ ์ถ”์ถœ: Webpack์ด JS ํŒŒ์ผ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ import "./style.css" ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์žˆ์œผ๋ฉด
    ์›๋ž˜๋Š” ์ด CSS๊ฐ€ JS ๋‚ด๋ถ€์— ํฌํ•จ๋˜์ง€๋งŒ, mini-css-extract-plugin์„ ์‚ฌ์šฉํ•˜๋ฉด CSS๋ฅผ ๋ณ„๋„์˜ .css ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌ
  • CSS ํŒŒ์ผ ์ƒ์„ฑ: ๋ฒˆ๋“ค๋ง์ด ์™„๋ฃŒ๋˜๋ฉด JS ๋ฒˆ๋“ค๊ณผ ๋ณ„๊ฐœ๋กœ .css ํŒŒ์ผ์ด ์ƒ์„ฑ๋จ
  • CSS ๋กœ๋“œ ์ตœ์ ํ™”: ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ CSS๋ฅผ ๋ณ„๋„๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์–ด JS + CSS๋ฅผ ํ•œ ๋ฒˆ์— ๋กœ๋“œํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ํšจ์œจ์ 

 

๐Ÿ“์ ์šฉ ๋ฐฉ๋ฒ• (React ํ”„๋กœ์ ํŠธ์—์„œ ์ ์šฉ)

  • ์„ค์น˜
npm install mini-css-extract-plugin --save-dev 
  • Webpack ์„ค์ • ๋ณ€๊ฒฝ (webpack.config.js)
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: [MiniCssExtractPlugin.loader, "css-loader"],
      },
    ],
  },
  plugins: [new MiniCssExtractPlugin()], // ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถ”๊ฐ€
};

 

๐Ÿ“react-big-calendar์—์„œ ์™œ ํ•„์š”ํ• ๊นŒ?

react-big-calendar๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ CSS๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•˜์ง€๋งŒ Webpack์ด CSS๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ, mini-css-extract-plugin์ด ์—†์œผ๋ฉด CSS๊ฐ€ JS ๋ฒˆ๋“ค ๋‚ด๋ถ€์— ํฌํ•จ๋˜๋ ค๊ณ  ํ•ด์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ถ”๊ฐ€ํ•˜๋ฉด RBC ๋‚ด๋ถ€ CSS๋ฅผ ๋ณ„๋„์˜ .css ํŒŒ์ผ๋กœ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๊ณ , JS ๋ฒˆ๋“ค๊ณผ ๋ถ„๋ฆฌ๋˜์–ด ์บ˜๋ฆฐ๋”๋งŒ์˜ CSS๊ฐ€ ์ ์šฉ๋œ๋‹ค.

 

๊ทธ๋กœ ์ธํ•œ ํšจ๊ณผ๋Š”

1. ๋ฒˆ๋“ค ํฌ๊ธฐ ์ตœ์ ํ™”

  • JS ๋กœ๋”ฉ๊ณผ CSS ๋กœ๋”ฉ์ด ๋™์‹œ์— ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ์„ฑ๋Šฅ์ด ์ข‹์•„์ง„๋‹ค.
  • JS ๋กœ๋“œ ์ดํ›„์— CSS ์ ์šฉ์ด ์•„๋‹Œ, ์Šคํƒ€์ผ์ด ๋จผ์ € ๋กœ๋“œ๋  ์ˆ˜ ์žˆ์Œ.

๐Ÿค”JS๊ฐ€ ๋กœ๋“œ๋˜๊ธฐ๋„ ์ „์— ์Šคํƒ€์ผ์ด ๋จผ์ € ๋กœ๋“œ๋˜๋ฉด CSS๊ฐ€ ์ ์šฉ ์•ˆ ๋˜๋Š” ๊ฑฐ ์•„๋‹ˆ์•ผ?

๋”๋ณด๊ธฐ

์˜คํžˆ๋ ค ๋” ๋น ๋ฅด๊ฒŒ ๋ณด์ด๊ฒŒ ๋œ๋‹ค!

JS์— CSS๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ๋Š” 'JS ๋กœ๋“œ -> CSS ์ ์šฉ' ์ˆœ์„œ์ด๊ธฐ ๋•Œ๋ฌธ์— 

์Šคํƒ€์ผ์ด ์ ์šฉ๋˜์ง€ ์•Š์€ HTML ์š”์†Œ๊ฐ€ ๋จผ์ € ๋ณด์ด๋ฉฐ, ๊นœ๋นก์ด๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ˜๋ฉด ์Šคํƒ€์ผ์ด ๋จผ์ € ์ ์šฉ๋˜๋ฉด ์ง€์—ฐ ์—†์ด ํ™”๋ฉด ๊ตฌ์„ฑ์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

2. ์บ์‹ฑ ์ตœ์ ํ™”

  • ์Šคํƒ€์ผ์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ํ•œ CSS๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์บ์‹ฑ๋˜๊ณ , JS ํŒŒ์ผ๋งŒ ์ƒˆ๋กœ ๋ฐ›๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ์Šคํƒ€์ผ ์ถฉ๋Œ ๋ฐฉ์ง€

  • RBC ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” CSS์™€ ํ”„๋กœ์ ํŠธ์—์„œ ์ง์ ‘ ์ •์˜ํ•œ CSS๊ฐ€ ์ถฉ๋Œํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”๋ฐ,
    RBC์˜ CSS๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์œ ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

[Next.js ํ™˜๊ฒฝ]

๋ฐ˜๋ฉด ๋‚˜์™€ ๊ฐ™์ด Next.js๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•œ ์ค„๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค.

import "react-big-calendar/lib/css/react-big-calendar.css";

 

 

์™œ๋ƒํ•˜๋ฉด Next.js๋Š” Webpack ์„ค์ •์„ ์ž๋™ ๊ด€๋ฆฌํ•˜๊ณ  CSS ๋กœ๋”๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ

  • Next.js๋Š” next.config.js ๋‚ด๋ถ€์—์„œ Webpack์„ ์ž๋™์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ๋ณธ์ ์ธ CSS ์ฒ˜๋ฆฌ๋Š” ์ถ”๊ฐ€ ์„ค์ • ์—†์ด ๋™์ž‘ํ•œ๋‹ค.
  • Next.js๋Š” .css ํŒŒ์ผ์„ importํ•˜๋Š” ๊ฒƒ์„ ์ง€์›ํ•˜๋ฏ€๋กœ, mini-css-extract-plugin์„ ์ง์ ‘ ์„ค์ •ํ•  ํ•„์š” ์—†๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด import๋ฅผ ์–ด๋””์„œ ํ•˜๋А๋ƒ??

๋ณดํ†ต ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€์—์„œ ์บ˜๋ฆฐ๋” CSS๋ฅผ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, RootLayout์— ์ ์šฉํ•˜์—ฌ ์ „์—ญ ์Šคํƒ€์ผ๋กœ ์ง€์ •ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ '์บ˜๋ฆฐ๋” ํŽ˜์ด์ง€'์—์„œ๋งŒ ๋ฆฌ์•กํŠธ ๋น… ์บ˜๋ฆฐ๋”๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

๐Ÿค”๋งŒ์•ฝ, ์ด๋Ÿฐ ๊ฒฝ์šฐ์— RootLayout์— import๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด?

์บ˜๋ฆฐ๋”๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€์˜ CSS์™€ ์ถฉ๋Œ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์บ˜๋ฆฐ๋” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํฌํ•จ๋œ ํ•ด๋‹น ํŽ˜์ด์ง€์— import๋ฅผ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์ •์ƒ ์ž‘๋™ ํ™•์ธ!

 

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ