HTML & CSS

[Sass] Sass ์„ค์น˜, ์ปดํŒŒ์ผ ๋ช…๋ น์–ด

kelly09 2024. 5. 20. 18:34

๐Ÿฐ ์„ค์น˜ํ•˜๊ธฐ

Node.js ์„ค์น˜ ์™„๋ฃŒ ํ›„ sass ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ์‹ค์Šต์—์„œ๋Š” ๋กœ์ปฌ๋กœ ์„ค์น˜ํ–ˆ๋‹ค.

npm i -D sass
  • -D๋Š” --save-dev์˜ ์•ฝ์ž: Sass ํŒจํ‚ค์ง€๋ฅผ ๊ฐœ๋ฐœ ์˜์กด์„ฑ(devDependency)์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค๋Š” ์˜๋ฏธ.
  • ๊ฐœ๋ฐœ ์˜์กด์„ฑ: ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ๋งŒ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜. ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์ด ํŒจํ‚ค์ง€๋“ค ํ•„์š” ์—†์Œ.
  • ๋ชฉ์ : ํ…Œ์ŠคํŠธ, ๋นŒ๋“œ, ๋„๊ตฌ, ๋ฆฐํŒ…, CSS ์ „์ฒ˜๋ฆฌ๊ธฐ ๋“ฑ ๊ฐœ๋ฐœ ์ค‘์—๋งŒ ํ•„์š”ํ•œ ๋„๊ตฌ๋“ค์„ ๊ด€๋ฆฌ ํ•  ๋•Œ ์‚ฌ์šฉํ•จ.
  • -D ์‚ฌ์šฉํ•ด์„œ ์„ค์น˜ ์‹œ package.json ํŒŒ์ผ์˜ devDependencies ํ•ญ๋ชฉ์— ์ถ”๊ฐ€๋จ.

=> package.json, dependencies๊ฐ€ ๋ญ์ง€? https://kellyjs.tistory.com/33

์„ค์น˜ ํ›„ ํŒŒ์ผ ๋‘ ๊ฐœ์™€ ํด๋”๊ฐ€ ์ƒ๊น€

๐Ÿฐ ์ปดํŒŒ์ผ ๋ช…๋ น์–ด

: ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” Sass ํŒŒ์ผ ํ•ด์„ํ•  ์ˆ˜ ์—†์Œ => ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด CSS ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ ์ฒ˜๋ฆฌํ•จ

๋ช…๋ น์–ด๋ฅผ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด package.json ํŒŒ์ผ์˜ scripts ํ•ญ๋ชฉ์— Sass CLI ๋ช…๋ น์–ด ๋“ฑ๋กํ•จ

{
  "scripts": {
    "dev": "live-server",
    "sass": "sass src/scss/main.scss src/css/main.css",
    "update": "sass --update src/scss/main.scss src/css/main.css",
    "watch": "sass --update --watch src/scss/main.scss src/css/main.css",
    "sass-all": "sass src/scss:src/css",
    "update-all": "sass --update src/scss:src/css",
    "watch-all": "sass --update --watch src/scss:src/css",
    "compressed": "sass src/scss:src/css --style compressed",
    "no-map": "sass src/scss:src/css --no-source-map",
    "clean": "rm -rf src/css"
  },
  "devDependencies": {
    "sass": "^1.77.2"
  }
}

๐Ÿด scripts ์„น์…˜์— ์‚ฌ์šฉํ•œ ํ”Œ๋ž˜๊ทธ(์ˆ˜์—… ๋•Œ ์„ค์ •ํ•œ ๋ช…๋ น์–ด๋“ค)

  • NPM ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์Šคํฌ๋ฆฝํŠธ ์ •์˜
  • npm run <script-name>์„ ํ†ตํ•ด ์‹คํ–‰
  • "sass" - scssํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜์—ฌ cssํŒŒ์ผ๋กœ ๋ณ€ํ™˜ => ์›ํˆฌ์› ๋ชจ๋“œ(1๋Œ€1๋กœ ์ปดํŒŒ์ผ)
  • "--update" - ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ๋งŒ ์—…๋ฐ์ดํŠธ
  • "--update --watch" - ํŒŒ์ผ์„ ๊ฐ์‹œํ•˜์—ฌ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค src/css/main.css ํŒŒ์ผ๋กœ ์ปดํŒŒ์ผ
  • "--update --watch ํด๋”:ํด๋”" - src/scss ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  SCSS ํŒŒ์ผ ์ปดํŒŒ์ผ 
  • "--update ํด๋”:ํด๋”" - src/scss ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  SCSS ํŒŒ์ผ ์—…๋ฐ์ดํŠธ
  • "--update --watch ํด๋”:ํด๋”" - src/scss ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  SCSS ํŒŒ์ผ ๊ฐ์‹œ, ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๋Œ€์‘๋˜๋Š” src/css ๋””๋ ‰ํ† ๋ฆฌ์— ์ปดํŒŒ์ผ
  • "--style compressed" - CSS๋ฅผ ์••์ถ•๋œ ํ˜•ํƒœ๋กœ ๋งŒ๋“ฆ
  • "--no-source-map" - ์†Œ์Šค ๋งต์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ปดํŒŒ์ผ
  • "clean" - src/css ๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ

์ž์„ธํ•œ ๋ช…๋ น์–ด ํ™•์ธํ•˜๊ธฐ => https://sass-lang.com/documentation/cli/dart-sass/

๐Ÿด source-map

: ์›น ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ๋ณ€ํ™˜ ๊ณผ์ •์—์„œ ์›๋ณธ ์†Œ์Šค ์ฝ”๋“œ์™€ ๋ณ€ํ™˜๋œ ์ฝ”๋“œ ๊ฐ„์˜ ๋Œ€์‘ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ฃผ๋Š” ํŒŒ์ผ

์ฃผ์š” ๊ธฐ๋Šฅ

  1. ๋””๋ฒ„๊น… - ๋ณ€ํ™˜๋œ ์ฝ”๋“œ์—์„œ ์›๋ณธ ์†Œ์Šค ์ฝ”๋“œ์˜ ๋ผ์ธ ๋ฐ ์ปฌ๋Ÿผ ์ •๋ณด ํ™•์ธ ๊ฐ€๋Šฅ
  2. ์†๋„ ์ตœ์ ํ™” - ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›๋ณธ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ๋””๋ฒ„๊น… ์ง„ํ–‰ ๊ฐ€๋Šฅ
  3. ๋ณด์•ˆ - ์›๋ณธ ์ฝ”๋“œ ๋…ธ์ถœ ์—†์ด ๋””๋ฒ„๊น… ๊ฐ€๋Šฅ