๐ŸŒฑ → ๐ŸŒณ

[node.js] Yarn์ด๋ž€? ๋ณธ๋ฌธ

Server/Node.js

[node.js] Yarn์ด๋ž€?

BAY 2022. 9. 2. 15:24
728x90

๐Ÿ“Œ Yarn ์ด๋ž€?

Facebook์—์„œ ๋งŒ๋“  ๋…ธ๋“œ ํŽ˜ํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋„๊ตฌ

npm๊ณผ ์ •ํ™•ํ•˜๊ฒŒ ๊ฐ™์€ ์ผ์„ ํ•ด์คŒ(but, ๊ฐ€๋ณ๊ณ  ๋น ๋ฆ„)

+ React๋„ Facebook์—์„œ ๋งŒ๋“ค์–ด์„œ ์ถ”ํ›„์— ํŽธ๋ฆฌํ•จ

 

โœ… Yarn์˜ ์žฅ์  

  • ์†๋„
    • ํŒจํ‚ค์ง€ ๋ฐ์ดํ„ฐ๋ฅผ Cache ์— ์ €์žฅํ•˜์—ฌ ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์šด ๋ฐ›์ง€ ์•Š๊ณ  ์„ค์น˜ ํ•ฉ๋‹ˆ๋‹ค -> ์†๋„๊ฐ€ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค
  • ์•ˆ์ •์„ฑ & ๋ณด์•ˆ์„ฑ
    • Yarn ์€ ์ด์ „์— npm์ด ์ œ๊ณตํ•˜์ง€ ์•Š๋˜ yarn.lock ํŒŒ์ผ์„ ์ œ๊ณต
    • ๊ฐ„๋‹จํ•œ ์ •๋ณด๋งŒ ํฌํ•จํ•˜๋˜ packge.json ์ด ์•„๋‹ˆ๋ผ ๊ฐ ํŒจํ‚ค์ง€์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ „๋ถ€ ํฌํ•จํ•˜๋Š” lock ํŒŒ์ผ์˜ ์กด์žฌ๋Š” ์–ด๋Š ํ™˜๊ฒฝ์—์„œ๋‚˜ ๊ฐ™์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅ์„ ํ•ด์คฌ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์ด ๋›ฐ์–ด๋‚จ
    • ๋‚˜์ค‘์—, npm ๋„ pakage-lock.json ์„ ๋„์ž…ํ•˜์—ฌ ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ ํ•ด๊ฒฐ
    • ์ง€๊ธˆ์€ ์†๋„๊ฐ€ ๋น ๋ฅธ ์žฅ์ ๋งŒ ๋‚จ์Œ

 

โœ… Yarn ์‚ฌ์šฉํ•˜๊ธฐ 

๐Ÿ“ yarn install 

sudo npm i -g yarn

๐Ÿ“ yarn ์ž˜ ์„ค์น˜ ๋˜์—ˆ๋Š”์ง€, version ํ™•์ธ

yarn
yarn init -y

๐Ÿ“ prettier, eslint ์„ค์น˜

yarn add -D prettier
yarn add -D eslint
Yarn add -D eslint-config-airbnb-base eslint-plugin-import

๐Ÿ“ typescript ์„ค์น˜

yarn add -D typescript
yarn add -D @type/node

 

์ถ”๊ฐ€๋กœ prettier, eslint ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์›ํ•˜๋Š” ๊ทœ์น™์„ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋œ๋‹ค ! 

(.prettierrc, .eslintrc.js)

//.prettierrc

{
  "semi": true,
  "singleQuote": true
}
//.eslintrc.js

module.exports = {
  extends: ['airbnb-base'],
  rules: {
    'no-console': 'off',
    'prefer-destructuring': 'off',
  },
};
728x90