yarn
Facebook ์์ ๋ง๋ JavaScript Package Manager ์ด๋ค
์ ๋ง๋ค์๋๊ฐ?
์ฝ๋ ๋ฒ ์ด์ค๊ฐ ์ปค์ง๋ฉด์ npm ์ ์ฌ์ฉํ์ ๋ ์์ ์ฑ, ์ฑ๋ฅ, ๋ณด์์ ๋ํ ์ด์๊ฐ ๋ฐ์ํ์ฌ Facebook, Google, Exponent, Tilde ๊ฐ๋ฐ์๋ค์ด npm client๋ฅผ ๋์ฒดํ ํจํค์ง๋ฅผ ๋ง๋ค๊ฒ ๋์๋ค
npm ์ด์?
โข
์ฑ๋ฅ ์ด์
โฆ
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น๊ฐ ๋ณ๋ ฌ์ ์ด์ง ์๊ณ , ์์กด์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ๋ํ๋ ๋ค์ด๋ฐ๋ค๋ณด๋ ์ฑ๋ฅ์ด ๊ต์ฅํ ์ ํ๋จ
โข
๋ณด์ ์ด์
โฆ
์คํ๋ผ์ธ ํ๊ฒฝ ํน์ ์ธ๋ถ ๋ฐฉํ๋ฒฝ์ด ์ฐจ๋จ๋์ด ์๋ ํ๊ฒฝ์์ ์์กด์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์๋ค.
โข
๊ทธ ์ธ์ ์ฌ๋ฌ ์ด์๋ค์ด ์์
yarn vs npm
โข
No Cache, No node_moduels, No locks
โข
npm install : 1๋ถ 29์ด
โข
yarn install : 24์ด
์ค์น
โข
npm
$ npm i -g yarn
Shell
๋ณต์ฌ
โข
mac
$ brew install yarn
Shell
๋ณต์ฌ
โข
ubuntu
$ sudo apt-get update && sudo apt-get install yarn
Shell
๋ณต์ฌ
โข
yarn update ( currently not available )
$ yarn self-update
Shell
๋ณต์ฌ
์ฌ์ฉ
โข
ํ๋ก์ ํธ ์ด๊ธฐํ
โฆ
npm ์ฒ๋ผ package.json์ ์์ฑํ๋ค
โฆ
์ด๋ฏธ package.json์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฌ์ฉํ๋ค
$ yarn init
Shell
๋ณต์ฌ
โข
๋ชจ๋ ์ค์น
$ yarn install [package-name]@[version-or-tag] [options]
Shell
๋ณต์ฌ
โข
ํจํค์ง ์ถ๊ฐ
โฆ
npm install --save ์ ๊ฐ์ ์๋ฏธ
$ yarn add [package-name]@[version-or-tag] // production
$ yarn add --dev [package-name]@[version-or-tag] // development
$ yarn add file:/path/to/local/folder // ๋ก์ปฌ ํด๋ ์ถ๊ฐ
$ yarn add file:/path/to/local/tarball.tgz // ๋ก์ปฌ ํ์ผ ์ถ๊ฐ
$ yarn add <git remote url> // git repository ์ถ๊ฐ
$ yarn add https://my-project/package.tar.gz // URL ์ถ๊ฐ
Shell
๋ณต์ฌ
โข
ํจํค์ง ์ญ์
$ yarn remove [package-name]@[version-or-tag]
Shell
๋ณต์ฌ
โข
Global ํจํค์ง ์ค์น
$ yarn global add [package-name]@[version-or-tag]
Shell
๋ณต์ฌ
โข
Global ํจํค์ง ์ญ์
$ yarn global remove [package-name]@[version-or-tag]
Shell
๋ณต์ฌ
โข
์บ์ ์ญ์
$ yarn cache clean
Shell
๋ณต์ฌ
โข
์์กด์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
$ cat package.json
...
"dependencies": {}
"devDependencies": {
"babel-core": "^6.7.0",
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.6.0"
}
...
Shell
๋ณต์ฌ
migration
yarn์ npm, bower ์ํฌ ํ๋ก์ฐ์ ๋ชจ๋ ํธํ์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ mixing registries๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋ณ๋ค๋ฅธ ์์
์์ด ๋ฐ๋ก yarn์ ์ฌ์ฉํ ์ ์๋ค
์ฐธ๊ณ
โข
https://code.facebook.com/posts/1840075619545360
โข
https://yarnpkg.com/en/compare
โข
https://yarnpkg.com/en/docs/install#mac-tab
โข
https://yarnpkg.com/en/docs/getting-started



