.prettierrc

ํ”„๋ฆฌํ‹ฐ์–ด ์„ค์ •์„ ํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. src๋‚˜ publicํด๋”๊ฐ€ ์žˆ๋Š” ๊ณต๊ฐ„์— ์ถ”๊ฐ€ํ•˜์—ฌ
{ "singleQuote":true, "semi": true, "useTabs": false, "tabWidth": 2 }
โ€”>
  1. ์ด ํŒŒ์ผ์—์„œ๋Š” ๋“ค์—ฌ์“ฐ๊ธฐ๋ฅผ ํ•  ๋•Œ ํƒญ ๋Œ€์‹ ,
  1. ๊ณต๋ฐฑ์„ ๋‘ ์นธ ์‚ฌ์šฉํ•œ๋‹ค. ํฐ๋”ฐ์˜ดํ‘œ ๋Œ€์‹  ์ž‘์€๋”ฐ์˜ดํ‘œ๋ฅผ ์“ด๋‹ค.
  1. ์„ธ๋ฏธ์ฝœ๋ก ์€ ์–ธ์ œ๋‚˜ ๋ถ™์ธ๋‹ค.

Prettier ์ต์Šคํ…์…˜ ์„ค์ •ํ•˜๊ธฐ

์„ค์น˜ ํ›„ ์–ด๋А์ •๋„์˜ ์„ธํŒ…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
notion image
์„ค์ •์ฐฝ ๋“ค์–ด๊ฐ€๊ธฐ
ํŒŒ์ผ > ๊ธฐ๋ณธ์„ค์ • > ์„ค์ •
์„ ์„ ํƒํ•˜๋ฉด ์„ค์ •ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.
notion image
์„ค์ •ํ•˜๊ธฐ์„ค์ •์ฐฝ์˜
์‚ฌ์šฉ์ž
์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  1. Prettier-Codeformatter ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  1. Prettier์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ •์ฐฝ์ด ๋‚˜์˜ต๋‹ˆ๋‹ค. ์˜ˆ์ „์—๋Š” ์ฝ”๋“œ๋ฅผ ํ…์ŠคํŠธํ˜•ํƒœ๋กœ ์ˆ˜์ •ํ•˜๋Š” ์„ค์ •์ฐฝ์ด ๋‚˜์™”์œผ๋‚˜ ์–ธ์ œ ๋ถ€ํ„ฐ์ธ๊ฐ€ ์„ค์ •ํ•˜๊ธฐ ์‰ฌ์šด UI์ฐฝ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์˜ˆ์ „๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๋˜ ์‚ฌ๋žŒ์ด๋ผ๋ฉด ์ด ์ฐฝ ๋ง๊ณ  ์˜ˆ์ „ ์„ค์ •์ฐฝ์ด ๋” ํŽธํ•œ ์‚ฌ๋žŒ๋„ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
notion image
Setting.json์—ด๊ธฐ์šฐ์ƒ๋‹จ์— ์žˆ๋Š” ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
notion image
์„ค์ •ํ•˜๊ธฐ
  1. setting.json๋ฌธ์„œ๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ์˜ˆ์ „์˜ ์„ธํŒ… ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.
  1. ์„ค์ • ์ฐฝ์—์„œ ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋œ๋‹ค๋ฉดย setting.json์˜ ๊ฐ’์ด ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ์ด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ๋งํ•˜๋ฉด ์ง์ ‘ ์ดย setting.jsonํŒŒ์ผ์— ์˜ต์…˜์‚ฌํ•ญ์„ ์ ์–ด๋„ ๋ฐ˜์˜์ด ๋œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

Prettier ์„ค์ •

Prettier์˜ ์„ค์ •์€ ์•„๋ž˜์˜ ์ˆœ์„œ๋กœ ์ ์šฉ์ด ๋ฉ๋‹ˆ๋‹ค.
settings.jsonย <ย .editorconfigย <ย .prettierrc
  1. ๋จผ์ €ย settings.json์— ์„ค์ •ํ•œ ์„ธํŒ…๊ฐ’์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  1. ๋งŒ์•ฝ ํ”„๋กœ์ ํŠธ์— EditorConfig์˜ ์„ค์ •ํŒŒ์ผ์ธย .editorconfig๊ฐ€ ์žˆ์œผ๋ฉด ์ด ์„ค์ •์ด ๋ฎ์–ด์”๋‹ˆ๋‹ค.
  1. ๋งˆ์ง€๋ง‰์œผ๋กœ Prettier์˜ ๊ณ ์œ ํ•œ ์„ค์ •ํŒŒ์ผ์ธย .prettierrc๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์žˆ์œผ๋ฉด ์ด ๊ฐ’์„ ์ตœ์ข…์ ์œผ๋กœ ์ ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
VScode์˜ย settings.json์—๋Š” ๊ธฐ๋ณธ์„ค์ •๊ณผ ๋‹ฌ๋ฆฌ ์„ธํŒ…๊ฐ’์˜ ๋ง๋จธ๋ฆฌ์—ย prettier.~~์ฒ˜๋Ÿผ prettier.๋ฅผ ๋ถ™ํ˜€์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค

prettier.printWidth (default: 80)

ํ•œ์ค„ ๋‚ด์—์„œ ์ฝ”๋“œ๋ฅผ ๋งž์ถฅ๋‹ˆ๋‹ค. ํ•œ ์ค„์ด ์ด ๊ธ€์ž์ˆ˜๋ฅผ ๋„˜๊ฒŒ ๋˜๋ฉด ์ค„๋ฐ”๊ฟˆ๋˜์–ด ์ฝ”๋“œ๊ฐ€ ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.ํ•œ์ค„๋กœ ํ‘œํ˜„๋˜๋Š” ์ฝ”๋“œ๊ฐ€ 2์ค„์ด ๋˜์–ด๋ฒ„๋ ค์„œ ์ €๋Š” ๋ณด๊ธฐ๊ฐ€ ์ข‹์ง€ ์•Š์•„์„œ ๋ณดํ†ต 200์ด์ƒ ์žก์Šต๋‹ˆ๋‹ค.

prettier.tabWidth (default: 2)

ํ…์„ ๋ˆŒ๋ €์„ ๋•Œ ๋ช‡์นธ์ด ๋„์–ด์ง€๋Š”์ง€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ๋ณดํ†ต 4๋ฅผ ๋†“๊ณ  ์”๋‹ˆ๋‹ค.

prettier.singleQuote (default: false)

ํ™‘๋”ฐ์˜ดํ‘œ๋ฅผ ์“ธ๊ฑด์ง€ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ์Œ๋”ฐ์˜ดํ‘œ๊ฐ€ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. ์ฝ”๋”ฉ์„ ํ•˜๋ฉด์„œ ํ™‘๋”ฐ์˜ดํ‘œ๋ฅผ ์ผ๋‹ค๋ฉด ๊ฐ•์ œ๋กœ ์Œ๋”ฐ์˜ดํ‘œ๋กœ ๋ณ€๊ฒฝํ•ด ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

prettier.trailingComma (default: 'none')

๊ฐ์ฒด, ๋ฐฐ์—ด, ํ•จ์ˆ˜ ๋“ฑ์˜ ํ›„ํ–‰์— ์‰ผํ‘œ๋ฅผ ์ฐ์„์ง€ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
"none" - ์‰ผํ‘œ๋ฅผ ๋ถ™ํžˆ์ง€ ์•Š์Œ"es5" - ES5์—์„œ ์œ ํšจํ•œ ํ›„ํ–‰ ์‰ผํ‘œ ๋ถ™ํž˜ (๊ฐ์ฒด, ๋ฐฐ์—ด ๋“ฑ)"all" - ๊ฐ€๋Šฅํ•˜๋ฉด ํ›„ํ–‰ ์‰ผํ‘œ๋ฅผ ๋ถ™ํž˜ (ํ•จ์ˆ˜ ์ธ์ˆ˜)

prettier.bracketSpacing (default: true)

๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋‚ด๋ถ€์˜ ๊ณต๋ฐฑ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค

prettier.jsxBracketSameLine (default: false)

jsx ์š”์†Œ์˜ ๋งˆ์ง€๋ง‰ ๋‹ค์Œ ์ค„์— ๋‹ซ๊ธฐย >๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

prettier.parser (default: 'babylon') - JavaScript only

javascript์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ ํŒŒ์„œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์„œ๋Š” 'flow'๋ฐ 'babylon' 2๊ฐ€์ง€๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

prettier.semi (default: true)

๋ฌธ์žฅ ๋’ค์— ์„ธ๋ฏธ์ฝœ๋ก ์„ ๋ถ™ํž์ง€ ๋บ„์ง€๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

prettier.useTabs (default: false)

์ฐธ์ด๋ฉด ํƒญ์ด์žˆ๋Š” ์ค„์„ ๋“ค์—ฌ ์“ฐ๊ธฐ ํ•ฉ๋‹ˆ๋‹ค.

prettier.proseWrap (default: 'preserve')

๋งˆํฌ ๋‹ค์šด์€ ๊ณต๋ฐฑ ๋ฐ ์ค„๋ฐ•๊ฟˆ ๊ฐ™์€ ๊ฒƒ์ด ์ค‘์š”ํ•œ ์š”์†Œ์ด๋ฏ€๋กœ ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์ณ ์‚ฐ๋ฌธ์„ ๋žฉํ•‘ํ•ฉ๋‹ˆ๋‹ค.

prettier.arrowParens (default: 'avoid')

๋‹จ๋… ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์ฃผ์œ„์— ๊ด„ํ˜ธ๋ฅผ ์ž๋™์œผ๋กœ ๋ถ™ํž˜

prettier.jsxSingleQuote (default: false)

JSX์—์„œ๋Š” ํฐ ๋”ฐ์˜ดํ‘œ ๋Œ€์‹  ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

prettier.htmlWhitespaceSensitivity (default: 'css')

HTML ํŒŒ์ผ์˜ ์ „์—ญ ๊ณต๋ฐฑ ๊ฐ๋„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ญ”~ ์ด์•ผ๊ธฐ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”)

prettier.endOfLine (default: 'auto')

์ด ์„ค์ •๋„ ๋ฌด์Šจ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด์š”.. ๊ทธ๋ƒฅ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋†“๊ณ  ์”๋‹ˆ๋‹ค.

prettier.quoteProps (default: 'as-needed')

๊ฐ์ฒด์˜ ์†์„ฑ์ด ์ธ์šฉ ๋  ๋•Œ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

prettier.requireConfig (default: false)

prettierconfigํŒŒ์ผ์„ ์ ์šฉํ• ์ง€๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์š”

prettier.ignorePath (default: .prettierignore)

.gitignore์ฒ˜๋Ÿผ prettier์ด ์ ์šฉ๋˜์ง€ ์•Š๊ฒŒ ํ•˜๋ ค๋ฉดย .prettierignore์— ํŒŒ์ผ๋ช…์„ ๊ธฐ๋กํ•˜๋ฉด ๊ทธ ํŒŒ์ผ์€ ๋ฌด์‹œ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค๋˜ํ•œ ํŒŒ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๊ณ  ์ฝ”๋“œ๋‚ด์—์„œ ์ฃผ์„์œผ๋กœย // prettier-ignore๋ผ๊ณ  ์ž‘์„ฑํ•˜๋ฉด ํ•ด๋‹น ์ฝ”๋“œ๋งŒ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
html์—์„œ๋Š”ย <!-- prettier-ignore -->js์—์„œ๋Š”ย // prettier-ignore

prettier.disableLanguages (default: ["vue"])

์ด ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™” ํ•  ์–ธ์–ด ID ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
์ถœ์ฒ˜:
[UX ๊ณต์ž‘์†Œ]