ESLint + Prettier์—์„œ Delete cr ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ์ด์œ 

2026. 1. 28. 15:01ใ†Projects/WooniePangee

๋ฐ˜์‘ํ˜•

prettier, eslint์—์„œ endOfLine์„ "auto"๋กœ ๋‘์ž

๋ชฉ์ฐจ

1. ์ƒํ™ฉ: ๋งฅ์—์„œ๋งŒ ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ๋ฅผ ์œˆ๋„์šฐ์— ํด๋ก ํ–ˆ๋”๋‹ˆ

2. ์›์ธ: eslint-plugin-prettier

3. ํ•ด๊ฒฐ: eslint.config.mjs์˜ prettier ์„ธํŒ… ์ˆ˜์ •


1. ์ƒํ™ฉ: ๋งฅ์—์„œ๋งŒ ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ๋ฅผ ์œˆ๋„์šฐ์— ํด๋ก ํ–ˆ๋”๋‹ˆ

Delete `โ` ์—๋Ÿฌ๊ฐ€ ์—„์ฒญ ๋œฌ๋‹ค

 

์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ESLint ์‚ฌ์šฉ ์ค‘ Delete โ eslint(prettier/prettier) ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์›์ธ์€ ์ค„๋ฐ”๊ฟˆ(CRLF ↔ LF) ๋ถˆ์ผ์น˜๋‹ค.

โ๋Š” Windows์˜ CRLF ์ค„๋ฐ”๊ฟˆ์— ํฌํ•จ๋œ Carriage Return(\r) ๋ฌธ์ž์ด๋ฉฐ,
ESLint์—์„œ ์‹คํ–‰๋˜๋Š” Prettier ๊ทœ์น™์ด LF๋งŒ ํ—ˆ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค.

 

ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋˜ eslint ๊ทœ์น™์ด ๋‹ค๋ฅธ ํŒ€ํ”„๋กœ์ ํŠธ์—์„œ ์“ฐ๋˜๊ฑธ ๊ฑฐ์˜ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜จ ๊ฑด๋ฐ, ๋‚˜์™€ ํŒ€์› ๋ชจ๋‘ iOS ํ™˜๊ฒฝ์œผ๋กœ๋งŒ ๊ฐœ๋ฐœ์„ ํ•ด์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜๋˜ ์—๋Ÿฌ์˜€๋˜ ๊ฒƒ์ด๋‹ค.

 

LF๋งŒ ํ—ˆ์šฉํ•˜๋„๋ก ์„ธํŒ…์„ ํ•ด๋‘ฌ์„œ window์—์„œ ์ž๋™์œผ๋กœ ์ ์šฉ๋œ CR์— ์—๋Ÿฌ๋ฅผ ๋ณด์˜€๋˜ ๊ฒƒ

 

๋‚ด๊ฐ€ ๋ถ€ํŠธ์บ ํ”„์—์„œ ๋ฐ›์•„์„œ ์“ฐ๋˜ ๋งฅ๋ถ์„ ๋ฐ˜๋‚ฉํ•ด์„œ ์ด์ œ 9๋…„์ฐจ์— ์ ‘์–ด๋“  ๋‚ด ์—˜์ง€ ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •์„ ํ•ด์•ผํ•œ๋‹ค.


2. ์›์ธ eslint-plugin-prettier

ํ˜„์žฌ eslint-plugin-prettier ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, eslint-plugin-prettier๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

'prettier/prettier': 'error'
 
 

์ฒ˜๋Ÿผ ์˜ต์…˜ ์—†์ด ๊ทœ์น™์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด Prettier์˜ ๊ธฐ๋ณธ๊ฐ’์ธ endOfLine: 'lf'๊ฐ€ ๊ฐ•์ œ๋กœ ์ ์šฉ๋œ๋‹ค.

์ด๋•Œ .prettierrc์— endOfLine: "auto"๊ฐ€ ์žˆ์–ด๋„ ๋ฌด์‹œ๋œ๋‹ค.

์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ESLint ๊ทœ์น™์— ์ „๋‹ฌ๋œ ์˜ต์…˜์ด Prettier ์„ค์ •๋ณด๋‹ค ์šฐ์„ ๋˜๊ธฐ ๋•Œ๋ฌธ์—

eslint.config.mjs ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์•ผ๋œ๋‹ค.

 


3. ํ•ด๊ฒฐ: eslint.config.mjs์˜ prettier ์„ธํŒ… ์ˆ˜์ •

eslint.config.mjs ํŒŒ์ผ์—์„œ prettier/prettier์— ํ•ด๋‹นํ•˜๋Š” ์˜ต์…˜์„ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

// ๊ธฐ์กด ๊ทœ์น™
'prettier/prettier': 'error',

// ์ˆ˜์ •๋œ ๊ทœ์น™
'prettier/prettier': [
  'error',
   {
      endOfLine: 'auto',
    },
],

 

๋งŒ์•ฝ eslint์—์„œ prettier ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค๋ฉด .prettierrc์—์„œ endOfLine ์˜ต์…˜์„ "lf"์—์„œ "auto"๋กœ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค.

 

 

 

 

 

์ฐธ๊ณ 

๋”๋ณด๊ธฐ

https://sasca37.tistory.com/301#google_vignette

 

๊ฐœํ–‰(์ค„๋ฐ”๊ฟˆ)๋ฌธ์ž - CRLF(\r\n), CR(\r), LF(\n) ์ฐจ์ด์  ์ •๋ฆฌ

CR, LF ์†Œ๊ฐœ CR (Carriage Return)์€ ํƒ€์ž๊ธฐ ์‹œ์ ˆ ํŽ˜์ดํผ ๋กค์„ ์šฐ์ธก์œผ๋กœ ์ด๋™์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋กœ, ํ˜„์žฌ ์œ„์น˜๋ฅผ ์ขŒ์ธก ๋งจ ๋์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. LF (Line Feed)๋Š” ํŽ˜์ดํผ ๋กค์„ ํ•œ ์ค„์”ฉ ์•„๋ž˜๋กœ ์ด๋™

sasca37.tistory.com

https://firsteast.tistory.com/148#google_vignette

 

Delete `โ` eslint (prettier/prettier) ์—๋Ÿฌ(LF, CRLF์˜ ์ฐจ์ด)

์ง‘์—์„œ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋˜ ์ค‘, ๊ธฐ์กด ๋งฅ๋ถ์œผ๋กœ ํ•˜๋˜ ์ž‘์—…์„ ๋ฐ์Šคํฌํ†ฑ(์œˆ๋„์šฐ)๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ๋งฅ๋ถ์—์„œ ์ž‘์—…ํ•˜๋˜ ์ฝ”๋“œ๋Š” ์ด์ƒ์ด ์—†์—ˆ๋Š”๋ฐ ์œˆ๋„์šฐ๋กœ ์ƒˆ๋กญ๊ฒŒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋‹ˆ

firsteast.tistory.com

 

๋ฐ˜์‘ํ˜•