Hello Kitty Eyes Shut
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐Ÿ“Œ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

[ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] TypeScript์—์„œ CSS / ์ด๋ฏธ์ง€ import ์‹œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

๋ฐ˜์‘ํ˜•

 

 

 

๐Ÿงฉ ๋ฌธ์ œ ์ƒํ™ฉ

Vite + React + TypeScript ํ™˜๊ฒฝ์—์„œ

.css๋‚˜ .png ํŒŒ์ผ์„ import ํ•˜๋‹ˆ๊นŒ

์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

 

Cannot find module './style.css' or its corresponding type declarations.
Cannot find module './logo.png' or its corresponding type declarations.

 

์ฒ˜์Œ์—๋Š” ๊ทธ๋ƒฅ ๊ฒฝ๋กœ ๋ฌธ์ œ์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ,

์‹ค์ œ ์›์ธ์€ TypeScript๊ฐ€ ํ•ด๋‹น ํŒŒ์ผ ํ˜•์‹์„

์ดํ•ดํ•˜์ง€ ๋ชปํ•ด์„œ ์ƒ๊ธด ํƒ€์ž… ์˜ค๋ฅ˜์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 


๐Ÿ›  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์ง์ ‘ ํƒ€์ž… ์„ ์–ธ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ

TypeScript์—๊ฒŒ ์ด๋Ÿฐ ํŒŒ์ผ๋„ import ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์•Œ๋ ค์ค˜์•ผ ํ–ˆ๋‹ค.

 

// ๐Ÿ“„ declarations.d.ts

// CSS ๋ชจ๋“ˆ ์„ ์–ธ
declare module '*.css' {
  const content: { [className: string]: string };
  export default content;
}

// ์ด๋ฏธ์ง€ ํŒŒ์ผ ์„ ์–ธ
declare module '*.png' {
  const src: string;
  export default src;
}

 

๊ทธ๋ฆฌ๊ณ  tsconfig.json์—๋„ types ๊ฒฝ๋กœ๊ฐ€ ์ œ๋Œ€๋กœ ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๋ณดํ†ต์€ include ํ•ญ๋ชฉ์— "types" ๋˜๋Š” "types/*.d.ts"๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๊ณ  ํ•ด์„œ

์•„๋ž˜์™€ ๊ฐ™์ด ํ•ด์ฃผ์—ˆ๋‹ค.

 

{
  "include": ["src", "types"]
}

 


๐Ÿ’ก ๊ตํ›ˆ

TypeScript๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ .ts / .tsx ์™ธ์˜ ๋‹ค๋ฅธ ํŒŒ์ผ ํƒ€์ž…์€ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—

์ง์ ‘ ํƒ€์ž… ์„ ์–ธ์„ ํ•ด์ค˜์•ผ๋งŒ ์—๋Ÿฌ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

.css, .png, .svg ๋“ฑ ์ •์  ์ž์›์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ๋Š”

์ดˆ๊ธฐ ์„ธํŒ… ์‹œ declarations.d.ts ํŒŒ์ผ์„ ๊ผญ ์ค€๋น„ํ•ด๋‘ฌ์•ผ ๊ฒ ๋‹ค.

 


๐Ÿ”Ž ์ „์ฒด ์ฝ”๋“œ

๐Ÿ“„ declarations.d.ts ์ „์ฒด ์ฝ”๋“œ

 

๐Ÿ“„ tsconfig.json ์ „์ฒด ์ฝ”๋“œ

๋ฐ˜์‘ํ˜•