[ESLint] The react-srcipts package provided by Create React App requires a dependency :: ์˜์กด์„ฑ ๋ฌธ์ œ

์˜์กด์„ฑ ์—๋Ÿฌ ํ•ด๊ฒฐ

์—๋Ÿฌ ๋ฐœ์ƒ

์ด๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค.

CRA๊ฐ€ ์ œ๊ณตํ•˜๋Š” react-scripts ํŒจํ‚ค์ง€๊ฐ€ eslint 6.6.0 ๋ฒ„์ „์— ์˜์กดํ•˜๋Š”๋ฐ, 7.2.0 ๋ฒ„์ „์„ ์„ค์น˜ํ•ด์„œ ๊ทธ๋ ‡๋‹ค๊ณ  ํ•œ๋‹ค.

์ € ๋ฐ‘์— ๋‚˜์˜ค๋Š” ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ๋”ฐ๋ผํ•ด๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š”๋‹ค ใ…Ž... ์ €๋ฒˆ์—๋„ ๊ฐ™์€ ๋ฌธ์ œ๋กœ ์†์ฉ์—ฌ์„œ ์ด๋ฒˆ์—” ์ œ๋Œ€๋กœ ๊ฐ์žก๊ณ  ํ•ด๊ฒฐํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์ด์œ  ๋ฐœ๊ฒฌ

์ด์œ ๋Š” ๊ตฌ๊ธ€๋งํ•˜๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ–ˆ๋Š”๋ฐ(https://github.com/wesbos/eslint-config-wesbos/issues/17) , react-scripts์˜ eslint ์˜์กด์„ฑ ๋ฒ„์ „๊ณผ airbnb linting์—์„œ์˜ eslint ์˜์กด์„ฑ ๋ฒ„์ „์ด ์ผ์น˜ํ•˜์ง€ ์•Š์•„์„œ ๋‚˜์˜ค๋Š” ๋ฌธ์ œ์˜€๋‹ค.

๋ป˜์ง“

๊ทธ๋ž˜์„œ ์ผ๋‹จ react-scripts version์„ `npm view react-scripts version`์œผ๋กœ ํ™•์ธํ•ด๋ณด๋‹ˆ 3.4.0 ์ด์—ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „์ธ react-scripts 4.0.0์œผ๋กœ ์„ค์น˜ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด `npm install --save react-scripts@^4.0.0`์„ ์‹คํ–‰ํ–ˆ๋‹ค.

์ด ์˜ค๋ฅ˜ ์ด์ œ ๊ทธ๋งŒ ๋ณด๊ณ ์‹ถ๋‹ค..

๊ทธ๋žฌ๋”๋‹ˆ ์ด์ œ eslint ๋ฒ„์ „ 7.11.0๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

์‹ค์ œ๋กœ node_modules ํด๋”์—์„œ react-scripts๋ฅผ ์ฐพ์•„์„œ package.json์˜ ์˜์กด์„ฑ(dependency)์„ ํ™•์ธํ•ด๋ณด๋ฉด eslint 7.11.0 ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ผ๊ณ  ๋˜์–ด์žˆ๋‹ค.

๋”ฐ๋ผ์„œ, eslint 7.11.0 ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ ค๊ณ  `npm install --save eslint@^7.11.0`ํ•ด๋ณด์ง€๋งŒ, ๊ณ„์† ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค.

 

๋‚˜์ค‘์— ๋ณด๋‹ˆ ์ƒ์œ„ ํด๋”์— ์„ค์น˜๋œ eslint ๋ฒ„์ „์„ ๋ฐ›์•„์˜ค๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ์ƒ์œ„ ํด๋”์— ์žˆ๋Š” eslint๋„ `npm uninstall --save eslint`๋กœ ์‚ญ์ œํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ณ„์† ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค.

 

 

ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

  • uninstall ๋ช…๋ น์–ด๋กœ react-scripts์™€ eslint๋ฅผ ์ƒ์œ„ํด๋”์™€ ํ•ด๋‹น ํด๋”์—์„œ ๋ชจ๋‘ ์ง€์šด๋‹ค.

  • package-lock.json์„ ์‚ญ์ œํ•œ๋‹ค.

    • ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“ˆ ๊ฐ„์˜ ์˜์กด์„ฑ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•œ๋‹ค.

 

๋์—†๋Š” ์˜ค๋ฅ˜

 

 

  • package.json์— ํ•„์š”ํ•œ ๋ชจ๋“ˆ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.

    • npm install --save ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋ฉด package.json์— ๋“ฑ๋ก๋œ๋‹ค.

    • react-scripts๋Š” 4.0.0 ๋ฒ„์ „, eslint๋Š” 7.11.0 ๋ฒ„์ „์„ ์„ค์น˜ํ•œ๋‹ค.

    • ๋‚˜์ค‘์— ์˜ค๋ฅ˜๋‚  ๊ฒƒ์„ ๋Œ€๋น„ํ•ด์„œ @babel/core 7.12.3 ๋ฒ„์ „๋„ ์„ค์น˜ํ•œ๋‹ค. (react-scripts์—์„œ ํ•„์š”๋กœ ํ•œ๋‹ค.)

      • node_modules ํด๋”์˜ react-scripts์—์„œ package.json ํŒŒ์ผ์˜ ์˜์กด์„ฑ์„ ํ™•์ธํ•˜๋ฉด @babel/core ๋ฒ„์ „์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • npm install

  • npm start

 

๊ฒฐ๋ก 

์›ํ•˜๋Š” ๋ชจ๋“ˆ๋“ค์˜ ์˜์กด์„ฑ ์—ฌ๋ถ€๋ฅผ ์กฐ์‚ฌํ•œ ํ›„, ํ•ด๋‹น ๋ฒ„์ „์„ --save๋กœ ๊น”์•„์„œ package.json์— ๋“ฑ๋ก๋˜๊ฒŒ ํ•ด์ค€๋‹ค.

์ด ๊ณผ์ •์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด ์ง€์ •ํ•ด๋‘” ์˜์กด์„ฑ๊ณผ ๋งž์ง€ ์•Š์•„ ๊น”๋ฆฌ์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ package-lock.json ํŒŒ์ผ์€ ์‚ญ์ œํ•œ ํ›„ ์ง„ํ–‰ํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•