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

Sass์‚ฌ์šฉ ์˜ค๋ฅ˜ & Sass๋ฅผ CSS๋กœ ๋ฐ”๊พธ๊ธฐ

by mingzoo 2021. 1. 13.

๋ฆฌ์•กํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋งŽ์€ ์˜ˆ์ œ๋“ค์„ ์ ‘ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ค‘์— Sass๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ๋“ค์„ ๋งŽ์ด ๋งž๋‹ฅ๋“œ๋ ธ๋‹ค.

CSS์™€ ๋‹ค๋ฅด๊ฒŒ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ์žฌํ™œ์šฉ์„ฑ์„ ๋†’์—ฌ์ฃผ๊ณ , ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค๋Š” ํ˜นํ•˜๋Š” ๋งค๋ ฅ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋‚˜๋Š” ์—„์ฒญ๋‚œ ์˜ค๋ฅ˜ํญํƒ„์„ ๋งž์ดํ–ˆ๋‹ค.๐Ÿ˜ฅ

 

์˜ค๋Š˜ ์ด ํฌ์ŠคํŠธ์˜ ์ˆœ์„œ๋Š” 

  • SCSS์‚ฌ์šฉํ•˜๋ฉด์„œ ๋ฐœ์ƒํ–ˆ๋˜ ์˜ค๋ฅ˜
  • SCSS ์ฝ”๋“œ => CSS์ฝ”๋“œ

๐ŸคฏSCSS ์‹คํ–‰ ์˜ค๋ฅ˜

node sass version 5.0.0 is incompatible with ^4.0.0.

ํ„ฐ๋ฏธ๋„์— ๊ณ„์†ํ•ด์„œ ๋‚˜ํƒ€๋‚œ ์˜ค๋ฅ˜

scss์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ํ›„, ์‹คํ–‰์„ ํ•˜๋ฉด ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค.

node sass์˜ ๋ฒ„์ „์ด ์•ˆ๋งž๋Š”๋‹ค๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€,,, ๊ทธ๋ž˜์„œ ๋ฐ”๋กœ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ดค๋‹ค.

stackoverflow.com/questions/64625050/error-node-sass-version-5-0-0-is-incompatible-with-4-0-0 

์—ญ์‹œ...์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ... ๋‚˜๋งŒ ์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฑด ์•„๋‹ˆ๊ตฌ๋‚˜...ํ•˜๋Š” ์œ„๋กœ๋ฅผ ๋ฐ›๊ณ  ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ์—์„œ ์‚ฌ๋žŒ๋“ค์ด ์ œ์‹œํ•ด์ค€ ๋Œ€๋กœ ํ•ด๋ณด์•˜๋‹ค.

//ํ„ฐ๋ฏธ๋„์—์„œ
$npm uninstall node-sass
//sass๋ฅผ ์ง€์›Œ์ฃผ๊ณ 
//๋ฒ„์ ผ์ด 4.14.1๋กœ ํ˜ธํ™˜์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์‹œ ์„ค์น˜ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
$npm install node-sass@4.14.1

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ธฐ์กด์— ์„ค์น˜ํ•œ node-sass์„ ์ œ๊ฑฐํ•˜๊ณ , ํ˜ธํ™˜์ด ๋˜๋Š” ๋ฒ„์ „์œผ๋กœ ์„ค์น˜ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์ด์ œ ๋˜๊ฒ ์ง€...? ๋ผ๋Š” ๋‚˜์˜ ๋ถ€ํ‘ผ ๊ธฐ๋Œ€์™€๋Š” ๋‹ฌ๋ฆฌ, ์ œ๋Œ€๋กœ ์ง€์›Œ์ง€์ง€๋„ ์•Š๊ณ , ์ œ๋Œ€๋กœ ์„ค์น˜๊ฐ€ ๋˜์ง€๋„ ์•Š์•˜๋‹ค.

 

๊ณ„์†ํ•ด์„œ

File to import not found or unreadable

์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋งŒ ๋˜ ํ„ฐ๋ฏธ๋„์—์„œ ๋ฐ˜๋ณต๋˜๋ฉฐ ์ œ๊ฑฐ๋ž‘ ์„ค์น˜๊ฐ€ ๋Š๊ฒผ๋‹ค.

stackoverrun.com/ko/q/12783682  

์ด ๋งํฌ์—์„œ ๋‚˜์™€ ๋น„์Šทํ•œ ์˜ค๋ฅ˜๋กœ ์˜ฌ๋ฆฐ ๊ธ€์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, path๋ž‘ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ œ๋Œ€๋กœ ํ™•์ธํ•˜๋ผ๋Š” ๋ง๋ฐ–์— ์—†์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ๋‚˜๋Š” ์•„๋ฌด๋ฆฌ ๋ด๋„ ์ด๋ฆ„๋„ path๋„ ์ œ๋Œ€๋กœ ํ•œ ๊ฒƒ ๊ฐ™์•„ ๋” ์ด์ƒ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผ๋˜๋‚˜ ํ•ด์„œ ๋ฉ˜๋ถ•์ด ์™”์—ˆ๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ ํ—ˆ๋ฌดํ•˜๊ฒŒ ํ•˜๋ฃจ๋ฅผ ๋‚ ๋ฆฌ๊ณ , ๋‹ค์Œ๋‚ ์ด ๋ผ์„œ ์ฐพ์•„๋ณด๋‹ˆ ์–ด๋–ค ๋ถ„์€ node js ์ž์ฒด๋ฅผ ์ œ๊ฑฐํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์„ค์น˜๋ฅผ ํ–ˆ๋‹ค๊ณ  ํ•˜๋Š” ๊ธ€์„ ๋ณด๊ฒŒ ๋๋‹ค.

velog.io/@qqbck123/sass%EC%84%A4%EC%B9%98%EC%A4%91-%EC%98%A4%EB%A5%98 

์ด ๊ธ€์ธ๋ฐ ์ œ๋ฐœ ์ด์   ํ•ด๊ฒฐ๋ผ๋ผ...๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ node๋„ ์žฌ์„ค์น˜ํ•ด๋ดค๋‹ค.

๊ฒฐ๊ณผ๋Š”....

์†Œ์šฉ์—†์—ˆ๋‹ค....

์š•์ด ๋‚˜์˜ค๋Š” ์ƒํ™ฉ์ด์—ˆ์ง€๋งŒ, ์–ด์ฉ” ์ˆ˜ ์—†์œผ๋‹ˆ css๋กœ ์ž‘์„ฑํ•˜์ž๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ ๋…ธ์„ ์„ ํ‹€์—ˆ๋‹ค.

๐Ÿ˜ญ๋งŒ์•ฝ, ๋‚˜์™€ ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ๋˜ ๋ถ„๋“ค์€ ์ด ์„ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ๋ผ๋„ ๊ผญ ํ•ด๊ฒฐ๋์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.๐Ÿ˜ญ

 

 

&+& ๋ฅผ CSS๋กœ ๊ณ ์น˜๊ธฐ

๊ทธ๋ ‡๊ฒŒ ์œ„์—์„œ์˜ ํ—˜๋‚œํ•œ ์—ฌ์ • ๋์— CSS๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

scss์™€ css๋Š” ๋น„์Šทํ•œ๋“ฏ ๋‹ค๋ฅด๋‹ค. ์ด๊ฒŒ ๋„ˆ๋ฌด ํ—ท๊ฐˆ๋ ธ๋‹ค!!!!!

์•„๋ฌด๋ž˜๋„ scss์˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  css๋กœ ๊ณ ์น˜๋‹ค๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€ ๋งŽ์ด ์ง€์ €๋ถ„ํ•ด์ง„ ๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ scss์˜ ์˜ˆ์‹œ ์ฝ”๋“œ์—์„œ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. 

.TodoListItem{
	(...)
    //์ƒ๋žต
    
    &+&{
    	border-top: 1px solid #dee2e6;
    }
}

 

.TodoListItem ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ํ•จ์ˆ˜ &+& ๊ฐ€ ์žˆ๋‹ค.

์ € ๋ถ€๋ถ„์€ ์—˜๋ฆฌ๋จผํŠธ ์‚ฌ์ด์‚ฌ์ด์— ํ…Œ๋‘๋ฆฌ๋ฅผ #dee2e6์˜ ์ƒ‰์œผ๋กœ ๋„ฃ์–ด์ค€๋‹ค๋Š” ๋œป์ด๋‹ค.

๋งŒ์•ฝ &+&๊ฐ€ .text์™€ ๊ฐ™์€ ๊ฒƒ์ด์—ˆ์œผ๋ฉด css๋กœ๋Š” .TodoListItem .text {}์ด๋ ‡๊ฒŒ ํ‘œํ˜„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

&๋Š” placeholder for the parent selector๋ผ๊ณ  ํ•œ๋‹ค.

๋ถ€๋ชจ ์„ ํƒ์ž๋ฅผ ์œ„ํ•œ ํ‘œ์‹œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ. ์ € ์ฝ”๋“œ์—์„œ๋Š” ๋ถ€๋ชจ์ธ .TodoListItem์„ ๋œปํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ์œ„์˜ ์ฝ”๋“œ๋ฅผ css๋กœ ๋ฐ”๊พธ๊ฒŒ ๋œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

 

.TodoListItem + .TodoListItem {
    border-top: 1px solid #f1f3f5;
}

 

์ด๋ ‡๊ฒŒ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋‹ˆ css์— ๋Œ€ํ•ด์„œ ์žฌ๋ฏธ์™€ ๋ชจ๋ฅด๋Š” ๊ฒŒ ์•„์ง ๋„ˆ๋ฌด๋‚˜๋„ ๋งŽ๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค.

๋‹ค์Œ์—๋Š” css์— ๋Œ€ํ•ด์„œ ๋” ๊ณต๋ถ€ํ•ด์„œ ์ •๋ฆฌํ•ด๋ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.

728x90