git์ yarn.lock์ ์ถ๊ฐ ํด์ผ ํฉ๋๋ค. ๋ฌด์ํ์ง ๋ง์ธ์.
https://yarnpkg.com/en/docs/migrating-from-npm์ ์ฐธ์กฐ
yarn
๋๋yarn add <package>
ํ๋ฉด Yarn์ ํจํค์ง์ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์yarn.lock
ํ์ผ์ ์์ฑํฉ๋๋ค. ์ด ํ์ผ์ ์ฝ๊ฑฐ๋ ์ดํดํ ํ์๊ฐ ์์ต๋๋ค .npm
๋์ Yarn์ ์ฌ์ฉํ๊ธฐ ์์ํ๋ฉดyarn.lock
ํ์ผ์ ์ฌ์ฉ์๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฒ๊ณผ ์ ํํ ๋์ผํ ์ข ์์ฑ์ ๊ฐ๋๋ก ํฉ๋๋ค.
๋ช
ํํ ํ์๋ฉด, ์ด๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์
๋ฟ๋ง ์๋๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ์ ์ฉ๋ฉ๋๋ค. npm-shrinkwrap.json
์ ๋ฐ๋๋ก ์ต์์ ํ๋ก์ ํธ์ yarn.lock
์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ๋ ์ฃ ? ๋ฐ๋ผ์ yarn.lock
ํ์ผ๊ณผ์ ์ข
์์ฑ์ ๋ถํ์ํ ์ค๋ณต์ ์์ฑํ์ง ์์ต๋๋ค. ๋ณต์กํ ๊ฐ๋ฐ ์ข
์์ฑ์ด ์๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ชจ๋ ๊ธฐ์ฌ์๊ฐ ๋์ผํ ๋น๋ ๋ฐ ํ
์คํธ ๊ตฌ์ฑ์ ๊ฐ๊ธฐ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฉํฉ๋๋ค.
์ด ์ฌ๋ฐ๋ฅธ์ง?
@๊ณ ๋
๋ฆฌํฌ์งํ ๋ฆฌ์ yarn.lock ํ์ผ์ ์ ์ฅํ๋ ๊ฒ์ด ํญ์ ์ต์ ์ ์์ด๋์ด๋ ์๋ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ ๋ ์๋
ธํผ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์ ์ง์ npm ๋ ์ง์คํธ๋ฆฌ๊ฐ ์์ต๋๋ค. ๋๋ ์ฃผ๋ก ๊ฐ์ธ ๋ชจ๋์ด ์๋ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ด ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ณต๊ฐ ์ข
์์ฑ๋ง ์๋ git ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ณต๊ฐ ํ๋ก์ ํธ๋ฅผ ํธ์ํ๋ฉด yarn.lock์ ์ข
์์ฑ์ ๋ํ ์๋ชป๋ ๋งํฌ๊ฐ ์๊ณ ๋ด CI ์์คํ
์ด ํ๋ก์ ํธ๋ฅผ ๋น๋ํ์ง ๋ชปํฉ๋๋ค.
์ข
์์ฑ์ ๋ด ๋ก์ปฌ ์ ์ฅ์๋ฅผ ๊ฐ๋ฆฌํต๋๋ค.
์ด๊ฒ์ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ด ์ ์ฅ์๋ฅผ ๋ณต์ ํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ์ํ ์ ์์ต๋๋ค.
yarn.lock ํ์ผ์ gitignore์ ๋ฃ๋ ๊ฒ ์ธ์๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๋ํ npm ๋ ์ง์คํธ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ์ธ์ฆํ ๊ฒฝ์ฐ(์: myget์ด npm์ ํ๋ก์์ธ ๊ฒฝ์ฐ) yarn.lock
์๋ ํจํค์ง์ ๋ํ ์ฌ์ ์ธ์ฆ ๋งํฌ๊ฐ ํฌํจ๋๋ฉฐ ์ด๋ ์ฃผ์ ๋ณด์ ์๋ฐ์
๋๋ค ๐
์ด๊ฒ์ ํฐ ๊ธ๊ผด๋ก ์ด๋๊ฐ์ ๋ฌธ์ํ๋์ด์ผ ํฉ๋๋ค.
@Pfeifenjoy npm ๋์ git submodule์ ์ฌ์ฉํ์ฌ ๊ฐ์ธ ํจํค์ง์ ์ฐ๊ฒฐํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
git์ ์ฌ์ฉํ๋ฉด ๋ฐฐํฌ ํค(ssh๋ฅผ ํตํด)๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฅ์์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
@beenotung ์ ๋ git์ ์ข ์์ฑ ๊ด๋ฆฌ์๋ก ์ฌ์ฉํ๋ ๊ฒ์
๋ํ ๋ด๊ฐ ์ฐธ์กฐํ๋ ์ข
์์ฑ์ ๋ด ๋ก์ปฌ sinopia ๊ณ์ ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ (๋ด ์์ ์ ํ๋ก์ ํธ๋ฟ๋ง ์๋๋ผ) ๋ชจ๋ ๋ค๋ฅธ ์ฃผ์๋ฅผ ์ป์ต๋๋ค. ๋ด ํ๋ก์ ํธ๊ฐ git์์ ์์กดํ๋ ๋ชจ๋ ๋
ธ๋ ๋ชจ๋์ ์ฐธ์กฐ
๋ํ yarn.lock ํ์ผ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค.
@Pfeifenjoy ์์ฌ๊ฐ ์ํํ๋ ค๋ ์์ ์ ์ถฉ๋์ด ์์ต๋๊น? ๋ค๋ฅธ ์ค์น์ ์ข ์์ฑ์ด ์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ ค๋ฉด ํฌํจ์ํค์ญ์์ค. ์๋ํ ๋๋ก ์ํ๋ฉ๋๋ค. ๊ฐ์ธ ์ ์ฅ์์ ์์ค๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ ์ ์ฅ์์ ํค๋ ์ํธ๋ฅผ ํนํ ๋ฌด์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ๋ง๋ง๋ค ๊ณต์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋งค์ฐ ์ ์คํด์ผ ํฉ๋๋ค. ํ๋ก์ ํธ readme์ ๋ํ ๊ฒฝ๊ณ , ๊ธฐ๋ฅ/ํ ์์ฒญ์ ๋ง๋ค ๊ฒ์ ๋๋ค).
์ธ์ฆ๋ ์์ค์ ๋ํ ์ก์ธ์ค๊ฐ ์ ๊ธ ํ์ผ์ ํฌํจ๋์ด ์์์ ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ํ๋ ์คํ ์ yarn์ ๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํด์ผ ํ์ง๋ง ๋ค์ ๋งํ์ง๋ง ์ด๋ ๊ธฐ๋ฅ ์์ฒญ์ด ๋ ๊ฒ์ ๋๋ค.
@thisolivier๋ ํฉ๋ฆฌ์ ์ผ๋ก ๋ค๋ฆฝ๋๋ค.
๊ทธ๋ฅ ๋ฉ๋ชจ.
https://github.com/yarnpkg/yarn/issues/3330 ๋๋ฌธ์ ์ค๊ตญ ๋๋ ๊ธฐํ ์ ํ ์ง์ญ์ ๊ฑฐ์ฃผํ๊ณ ๋ค๋ฅธ ๋ ์ง์คํธ๋ฆฌ(eq taobao)๋ก ๋ชจ๋์ ๋น๋ํ๋ ๊ฒฝ์ฐ yarn.lock
๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๋ค. .gitignoreํ๊ณ package-lock = false
๋ฅผ .npmrc์ ์๋๋ค.
์ฌ๊ธฐ์์ ๋ด๊ฐ ๋ด yarn.lock์ ์ปค๋ฐํ์ง ์๋ ์ด์ : ์ผ๋ถ ๋ชจ๋์๋ ๊ธฐ๋ณธ ์ข
์์ฑ์ด ์์ผ๋ฉฐ ์ผ๋ถ ํ๋ซํผ์์๋ง ์๋ํฉ๋๋ค( ์์ฌ.lock ์ด ์์ฑ๋๋ ํ๋ซํผ๊ณผ ์ ํํ ์ ์ฌํ ํ๋ซํผ).
์ฌ์ฉ์๋ฅผ ๋ง์กฑ์ํค๊ณ ๋ฒ๊ทธ ์๋ ์ค์น๋ฅผ ์ ์งํ๊ธฐ ์ํด ์์ฌ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์์ฌ๊ฐ ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช
ํํ ๋ฌธ์๊ฐ ํฌํจ๋ ์๋ฃจ์
์ ์ ๊ณตํ์ง ์๋ ํ ๋์ํ ๊ฒ์
๋๋ค.
(ํญ์ ๊ฐ๋ฐ์์ ์คํ๋ฅผ ๋ฃ์ต๋๋ค)
๋ํ ์ปค๋ฐ์ ์ ๋ง ์ถํ๊ฒ ๋ง๋ญ๋๋ค.
๋๋ ์ฌ๊ธฐ์์ ๊ฐ์ฅ ๋ง์ด ์ฐฌ์ฑ๋ ์๊ฒฌ์ ๋์ํ์ง ์์ต๋๋ค.
ํ๋ก์ ํธ๊ฐ ์ฌ์ฉํ๋ NPM ๊ฒฝ์ฐ โข ์ปค๋ฐ package-lock.json
์ repo์ gitignore yarn.lock
์ด ํ๋ก์ ํธ๋ ์์ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ โข ์ปค๋ฐ yarn.lock
์ repo์ gitignore package-lock.json
์ฆ, ํญ์ yarn.lock ์ repo ์ ์ปค๋ฐํด์๋ ์ _์_ ํ๊ณ OP์ ์ง๋ฌธ์ ๋๋ต ํ๋ ค๋ฉด .gitignore
์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ด npm ๋์ Yarn์ ์ฌ์ฉํ๊ธฐ ์์ํ ๋, yarn.lock ํ์ผ์ ๊ทธ๋ค์ด ๋น์ ์ด ๊ฐ์ง๊ณ ์๋ ๊ฒ๊ณผ ์ ํํ ๋์ผํ ์ข ์์ฑ์ ๊ฐ๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ฐ์ , ๊ณต๊ฐ npm ๋ ์ง์คํธ๋ฆฌ๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ๋ ๋์ ๊ฒ์ Yarn์์ ๊ฐ์ธ ์กฐ์ง์ ์ธ์ฆ๋์ง ์๊ณ (์ฌ์ ํ npm์ ์๋๋ผ๋) ๊ณต๊ฐ ๋ ์ง์คํธ๋ฆฌ์ ๋์ผํ ์ด๋ฆ์ ํจํค์ง๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ ํ๋กฌํํธ ์์ด ์๋ชป๋ ํจํค์ง๋ฅผ ์ค์นํ ๊ฒ์ ๋๋ค. ์์ฌ๊ฐ ์ค๋ฅ ์์ด ์ค์น๋๋ ์ด์ ๋ ํผ๋์ค๋ฌ์ธ ์ ์์ง๋ง ์ฑ์ ์์ฌ๋ฅผ ์ฌ์ฉํ ๋๋ ์๋ํ์ง ์์ง๋ง npm์ ์ฌ์ฉํ ๋๋ ์๋ํฉ๋๋ค.
๋์งธ, ๋ง์ ์ฝ๋๋ฒ ์ด์ค๋ ์์ฌ๋ฅผ _์ฌ์ฉํ์ง ์์ต๋๋ค_. "์ธ์ ์์ฌ๋ก ์ ํํ๋์ง"์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. ๊ฑฐ์ ๋ชจ๋ ๋ ธ๋ ์๋น์ค ๋ฐ ๊ธฐ๋ณธ ์น ์๋ฒ๋ ์์ผ๋ก ์ด๋ํ ๊ณํ ์์ด npm์ ์ฌ์ฉํฉ๋๋ค. ๋๋ React์ ํจ๊ป yarn์ ์ข์ํฉ๋๋ค. ๊ทธ๊ฒ ์ ๋ถ์ ๋๋ค.
์์์ ์ธ๊ธํ @Pfeifenjoy :
์ฌ์ฉ์ ์ง์ npm ๋ ์ง์คํธ๋ฆฌ๊ฐ ์์ต๋๋ค. ๊ฐ์ธ ๋ชจ๋์ด ์๋ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ฃผ๋ก ์ด ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ณต๊ฐ ์ข ์์ฑ๋ง ์๋ git ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ณต๊ฐ ํ๋ก์ ํธ๋ฅผ ํธ์ํ๋ฉด yarn.lock์ ์ข ์์ฑ์ ๋ํ ์๋ชป๋ ๋งํฌ๊ฐ ์๊ณ ๋ด CI ์์คํ ์ด ํ๋ก์ ํธ๋ฅผ ๋น๋ํ์ง ๋ชปํฉ๋๋ค.
^ ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ ๋ก์ปฌ์์ ํด๊ฒฐํ๋๋ผ๋ ์๋ฃจ์ ์ yaml ๋๋ CI์ ๋ํ ๊ตฌ์ฑ ๋ฐ ์ฑ์ ์คํํ๋ ๋ค๋ฅธ ๋ชจ๋ ์์น์ ํตํฉํด์ผ ํฉ๋๋ค. ์ด๋ค ๋ ์ง์คํธ๋ฆฌ์ ๋ช ๋ น์ ์ฌ์ฉํด์ผ ํ๋์ง ์ ์ ์๋ ์ผ์ข ์ ๋ ผ๋ฆฌ์ ๋๋ค. ์ง์ฆ๋๊ณ ๋ถํ์ํ ์๋ฆฌ
๋ ๋ค๋ฅธ ์ฌํญ - ๋ชจ๋ ์ฌ๋์ด ํญ์ yarn.lock
๋ฅผ repo์ ์ปค๋ฐํ๊ณ ์ ๋ ๋ฌด์ํ์ง ์๋๋ก ๊ถ์ฅํ๋ฉด ๊ฐ๋ฐ์๋ ์ด๋ฏธ npm์ ํฌ๊ฒ ์์กดํ๋ repo์์ yarn์ ์ฌ์ฉํ๊ธฐ ์์ํ ๊ฒ์
๋๋ค. ์ ์๋ํ๋ ๊ฒฝ์ฐ์๋ 2๊ฐ์ ์ ๊ธ ํ์ผ์ ์ค๋ณต์ด ์์ ๊ฒ์ด๋ฉฐ ์ด๋ ์ข
์์ฑ ์ง์ฅ์ ๋ฌธ์ ์ด ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ฐ๋ฐ์๋ ๊ธฐ์ฌ ๊ทธ๋ํ๋ฅผ ์๋ง์ผ๋ก ๋ง๋๋ ~25k ๋ผ์ธ yarn.lock
์ ์ปค๋ฐํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
git์ yarn.lock์ ์ถ๊ฐ ํด์ผ ํฉ๋๋ค. ๋ฌด์ํ์ง ๋ง์ธ์.
https://yarnpkg.com/en/docs/migrating-from-npm์ ์ฐธ์กฐ