[VSCode] Prettier ์„ค์ •

2025. 2. 3. 18:14ยท๐ŸŒ Environment/IDE : ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ
728x90

Prettier๋ž€?

์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ธฐ ์ข‹๊ณ  ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ํฌ๋งคํŒ…ํ•ด์ฃผ๋Š” ๋„๊ตฌ๋กœ, ์ค„๋ฐ”๊ฟˆ, ๋“ค์—ฌ์“ฐ๊ธฐ ๊ฐ„๊ฒฉ, ์„ธ๋ฏธ์ฝœ๋ก /ํฐ๋”ฐ์˜ดํ‘œ/์ž‘์€๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ ์—ฌ๋ถ€ ๋“ฑ์„ ์„ค์ •ํ•˜์—ฌ ํŒŒ์ผ ์ €์žฅ ์‹œ๋งˆ๋‹ค or ๋‹จ์ถ•ํ‚ค ์ž…๋ ฅ ์‹œ๋งˆ๋‹ค ํ˜•์‹์— ๋งž๊ฒŒ ๋ณด๊ธฐ ์ข‹๊ฒŒ ์ •๋ ฌํ•ด์ฃผ๋Š” ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ!

 

Prettier ์„ค์ •

๋จผ์ € VSCode ์‹คํ–‰ ํ›„ ์ขŒ์ธก Extensions ํƒญ์—์„œ Prettier๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ๋‹ค์šด๋กœ๋“œ ์ˆ˜๊ฐ€ ๋งํ•ด์ฃผ๋Š” ํŽธ์˜์„ฑ...

 

์ดํ›„ Ctrl + , ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ VSCode ์„ค์ • ์ฐฝ์„ ์—ฐ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด editor: default fomatter๋ฅผ ๊ฒ€์ƒ‰ํ•œ ๋’ค None์œผ๋กœ ๋˜์–ด์žˆ๋Š” ์„ค์ •์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.

์„ค์ • ์ „
์„ค์ • ํ›„ (Prettier - Code formatter)

 

ํŒŒ์ผ ์ €์žฅ ์‹œ์—๋„ ์ž๋™์œผ๋กœ ์ •๋ ฌ์ด ๋˜๋„๋ก editor: format on save mode๋ฅผ ๊ฒ€์ƒ‰ํ•œ ๋’ค ์ถ”๊ฐ€๋กœ ์„ค์ •ํ•ด ์ค€๋‹ค.

Editor: Format On Save ์ฒดํฌ

 

Prettier ์„ค์ •์€ ๋™์ผํ•˜๊ฒŒ Prettier๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๊ฐ€๋Šฅํ•˜๋‚˜, ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ ๋™์ผํ•œ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” .prettierrc ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ํŒ€ ์ปจ๋ฒค์…˜์— ๋งž๋Š” ์ •๋ ฌ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

.prettierrc ํŒŒ์ผ ์‚ฌ์šฉ

npm์„ ํ†ตํ•ด ์„œ๋ฒ„์— prettier๋ฅผ ์„ค์น˜ํ•œ๋‹ค.

  • --save-dev : ๋ฐฐํฌ์™€ ๋ฌด๊ด€ํ•œ ๊ฐœ๋ฐœ ๊ด€๋ จ ํŒจํ‚ค์ง€์ธ ๊ฒฝ์šฐ
  • --save-exact : ๋ฒ„์ „์ด ๋‹ฌ๋ผ์ง€๋ฉด์„œ ์ƒ๊ธฐ๋Š” ์Šคํƒ€์ผ ๋ณ€ํ™”๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•จ
$ npm install --save-dev --save-exact prettier
๋”๋ณด๊ธฐ

์ข…์†์„ฑ ์ถฉ๋Œ(์ž˜๋ชป๋˜๊ณ  ์ž ์žฌ์ ์œผ๋กœ ์†์ƒ๋œ ์ข…์†์„ฑ) ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ, npm audit fix --force ๋ช…๋ น์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค. npm audit ๋ช…๋ น์€ dependency tree์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์„ ์ œ๊ณตํ•œ๋‹ค๋Š”๋ฐ, npm audit ๋ช…๋ น์œผ๋กœ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ์ž๋™์œผ๋กœ ๊ณ ์ณ์ฃผ๋Š” (high๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๋Š”) ๊ฑฐ๋ผ๊ณ  ํ•œ๋‹ค.

$ npm audit fix --force

 

package.json ํŒŒ์ผ ๋‚ด devDependencied์— prettier๊ฐ€ ์ž๋™์œผ๋กœ ์„ค์น˜๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

๊ฐ€์žฅ ๋ฃจํŠธ ํด๋”์— .prettierrc ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ , ์›ํ•˜๋Š” Prettier ์˜ต์…˜์„ ์•„๋ž˜์—์„œ ์„ ํƒํ•ด ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

{
  "arrowParens": "always", // ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋‚˜์ผ ๋•Œ ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€
  "bracketSpacing": true, // ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์—์„œ ์ค‘๊ด„ํ˜ธ ๋‚ด๋ถ€์— ๊ณต๋ฐฑ ์‚ฝ์ž…ํ• ์ง€ ์—ฌ๋ถ€ 
  "endOfLine": "auto", // EoF ๋ฐฉ์‹, OS๋ณ„๋กœ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ๋‹ค๋ฆ„ 
  "htmlWhitespaceSensitivity": "css", // HTML ๊ณต๋ฐฑ ๊ฐ๋„ ์„ค์ •
  "jsxBracketSameLine": false, // JSX์˜ ๋งˆ์ง€๋ง‰ `>`๋ฅผ ๋‹ค์Œ ์ค„๋กœ ๋‚ด๋ฆด์ง€ ์—ฌ๋ถ€ 
  "jsxSingleQuote": false, // JSX์— singe ์ฟผํ…Œ์ด์…˜ ์‚ฌ์šฉ ์—ฌ๋ถ€
  "printWidth": 80, //  ํ•œ ์ค„์— ์ถœ๋ ฅ๋˜๋Š” ์ฝ”๋“œ์˜ ์ตœ๋Œ€ ๊ธธ์ด
  "proseWrap": "preserve", // markdown ํ…์ŠคํŠธ์˜ ์ค„๋ฐ”๊ฟˆ ๋ฐฉ์‹ (v1.8.2)
  "quoteProps": "as-needed" // ๊ฐ์ฒด ์†์„ฑ์— ์ฟผํ…Œ์ด์…˜ ์ ์šฉ ๋ฐฉ์‹
  "semi": true, // ์„ธ๋ฏธ์ฝœ๋ก  ์‚ฌ์šฉ ์—ฌ๋ถ€
  "singleQuote": true, // single ์ฟผํ…Œ์ด์…˜ ์‚ฌ์šฉ ์—ฌ๋ถ€
  "tabWidth": 2, // ํƒญ ๊ฐ„๊ฒฉ
  "trailingComma": "all", // ์—ฌ๋Ÿฌ ์ค„์„ ์‚ฌ์šฉํ•  ๋•Œ, ํ›„ํ–‰ ์ฝค๋งˆ ์‚ฌ์šฉ ๋ฐฉ์‹
  "useTabs": false, // ํƒญ ์‚ฌ์šฉ ์—ฌ๋ถ€
  "vueIndentScriptAndStyle": true, // Vue ํŒŒ์ผ์˜ script์™€ style ํƒœ๊ทธ์˜ ๋“ค์—ฌ์“ฐ๊ธฐ ์—ฌ๋ถ€ (v1.19.0)
  "parser": '', // ์‚ฌ์šฉํ•  parser๋ฅผ ์ง€์ •, ์ž๋™์œผ๋กœ ์ง€์ •๋จ
  "filepath": '', // parser๋ฅผ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ์„ ์ง€์ •
  "rangeStart": 0, // ํฌ๋งทํŒ…์„ ๋ถ€๋ถ„ ์ ์šฉํ•  ํŒŒ์ผ์˜ ์‹œ์ž‘ ๋ผ์ธ ์ง€์ •
  "rangeEnd": Infinity, // ํฌ๋งทํŒ… ๋ถ€๋ถ„ ์ ์šฉํ•  ํŒŒ์ผ์˜ ๋ ๋ผ์ธ ์ง€์ •,
  "requirePragma": false, // ํŒŒ์ผ ์ƒ๋‹จ์— ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ฃผ์„์„ ์ž‘์„ฑํ•˜๊ณ  Pragma๋กœ ํฌ๋งทํŒ… ์‚ฌ์šฉ ์—ฌ๋ถ€ ์ง€์ •
  "insertPragma": false, // ๋ฏธ๋ฆฌ ์ •์˜๋œ @format marker์˜ ์‚ฌ์šฉ ์—ฌ๋ถ€ (v1.8.0)
  "overrides": [ 
    {
      "files": "*.json",
      "options": {
        "printWidth": 200
      }
    }
  ], // ํŠน์ • ํŒŒ์ผ๋ณ„๋กœ ์˜ต์…˜์„ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•จ, ESLint ๋ฐฉ์‹ ์‚ฌ์šฉ
}

 

VSCode์—์„œ ๊ฐœ๋ณ„๋กœ ์„ค์ •ํ•œ ๊ฐ’๋ณด๋‹ค .prettierrc ํŒŒ์ผ์˜ ์ ์šฉ ์ˆœ์œ„๊ฐ€ ๋” ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด ์„ค์ •๊ฐ’์€ ๋ฌด์‹œ๋˜๋‹ˆ ์ฐธ๊ณ !

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐ŸŒ Environment > IDE : ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[IntelliJ] SQL dialect is not configured ๊ฒฝ๊ณ  ํ•ด๊ฒฐ  (0) 2025.03.13
[IntelliJ] ์ธํ…”๋ฆฌ์ œ์ด ๋‹ค์ค‘ ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ (์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ ํ•œ ํ™”๋ฉด์—์„œ ๋ณด๊ธฐ)  (0) 2025.03.12
[IntelliJ] ์ธํ…”๋ฆฌ์ œ์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์“ฐ๊ธฐ ์ข‹์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชฉ๋ก  (0) 2025.03.10
[VSCode] Discard changes ๋ณต์› ๋ฐฉ๋ฒ•  (1) 2025.02.05
[VSCode] Vue.js ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ  (0) 2025.01.31
'๐ŸŒ Environment/IDE : ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [IntelliJ] ์ธํ…”๋ฆฌ์ œ์ด ๋‹ค์ค‘ ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ (์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ ํ•œ ํ™”๋ฉด์—์„œ ๋ณด๊ธฐ)
  • [IntelliJ] ์ธํ…”๋ฆฌ์ œ์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์“ฐ๊ธฐ ์ข‹์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชฉ๋ก
  • [VSCode] Discard changes ๋ณต์› ๋ฐฉ๋ฒ•
  • [VSCode] Vue.js ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ
mxnxeonx
mxnxeonx
"์•„, ์ด๊ฑฐ ๋ญ์˜€๋”๋ผ"๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ์œ„ํ•œ ์ผ๊ธฐ์žฅ.
  • mxnxeonx
    MJ's Development Diary
    mxnxeonx
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (158)
      • ๐Ÿ’ป Language (43)
        • Java : ์ž๋ฐ” (18)
        • Python : ํŒŒ์ด์ฌ (9)
        • ROS : ๋กœ๋ด‡์‹œ์Šคํ…œ (9)
        • Android : ์•ˆ๋“œ๋กœ์ด๋“œ (4)
        • JavaScript : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ (2)
      • ๐ŸŒ Environment (19)
        • IDE : ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ (9)
        • Virtual : ๊ฐ€์ƒํ™˜๊ฒฝ (10)
      • โš™ Framework (12)
        • Vue-๋ทฐ (3)
        • Spring-์Šคํ”„๋ง (7)
      • ๐Ÿ’พ DataBase (18)
      • ๐ŸŒŒ OS (36)
        • Linux-๋ฆฌ๋ˆ…์Šค (36)
      • ๐Ÿ’ฌ CI · CD (7)
        • Git : ๊นƒ (7)
      • ๐Ÿ“ƒ ETC (6)
      • ๐Ÿค– AI (5)
  • ๋งํฌ

    • GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
mxnxeonx
[VSCode] Prettier ์„ค์ •
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”