NPM Workspace
Last updated
Last updated
๋ฉํฐ ๋ ํฌ๋ก ์ด์ํ์ ๋์ ๋๊ธฐํ ๋ฌธ์ ๋ฅผ NPM Workspace๋ก ํด๊ฒฐํ๊ณ ์ ํ๋ค.
๋ง์ ๊ธฐ์ ์์ workspace๋ฅผ ํ์ฉํ ๋ชจ๋ ธ๋ ํฌ ๋ฐฉ์์ ์ฑํํ๊ณ ์๊ณ
๋ฌด์กฐ๊ฑด์ ์ธ ์ ๋ต์ ์๋์ง๋ง ๊ฐ์ ๋๋ฉ์ธ์์ ๋๊ธฐํ ๋ฌธ์ ์์๋ ์ต์ ์ ์๋ฃจ์ ์ผ๋ก ์ธ ์ ์๋ค๊ณ ์๊ฐํ๋ค.
๊ฐ์ธ ํ๋ก์ ํธ ์ค CLI ํ๋ก์ ํธ์์ ํ ํ๋ฆฟ์ workspace๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ์ ์ฉํด๋ณด๋ฉด์ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
๋จ์ผ ์ต์์ ๋ฃจํธ ํจํค์ง ๋ด์์ ๋ก์ปฌ ํ์ผ ์์คํ ์ ์ฌ๋ฌ ํจํค์ง ๊ด๋ฆฌ๋ฅผ ์ง์ํ๋ npm cli์ ๊ธฐ๋ฅ ์งํฉ์ ๋ํ๋ด๋ ์ผ๋ฐ์ ์ธ ์ฉ์ด (npmjs docs)
๋๋ ์ ํ๋๋ฅผ ์ฌ์ฉํ๋ฉด ํ ํจํค์ง๋ฅผ ๋ฃจํธ๋ก ์ฌ๋ฌ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ฉ์ดํด์ง๋ค.
๊ทธ๋ฆฌ๊ณ workspace๋ฅผ ์ฌ์ฉํด ๊ฐ๋จํ ๋ฅผ ๊ตฌ์ฑํ ์ ์๋ค.
๋ชจ๋
ธ๋ ํฌ ๊ด๋ฆฌ ๋๊ตฌ๋ก ๊ฐ์ฅ ๋ง์ ํ๋ก์ ํธ์์ ์ฐ๋ Learn
์ ์ด์ฉํด๋ณด๊ณ ์ ํ๋ค.
Learn
์ Workspace์ ๊ด๋ฆฌ, ํ
์คํธ , ๋น๋, ๋ฐฐํฌ ๋ฑ์ ๋์์ค๋ค.
learn init
์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์ด๊ธฐํํ๋ค.
package.json์ด ๊ตฌ์ฑ๋๊ณ workspace ํ์ผ์ ๊ตฌ์ฑํ๋ค.
Workspace์ create ๋ช ๋ น์ด๋ก packages ๋๋ ํฐ๋ฆฌ์ ์ถ๊ฐํ ์ ์๋ค.
Workspace์ ์์กด์ฑ์ add๋ก ์ถ๊ฐํ ์ ์๋ค.(scope ์ต์ ์ผ๋ก ์ ์ญ/ํน์ ํจํค์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค)
์์กด์ฑ์ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ ์๋ ์์ง๋ง ๋ด๋ถ workspace์ผ ์๋ ์๋ค ๋ง ๊ทธ๋๋ก ์์กด์ฑ!
ignore-workspace-root-check
์ต์
์ ๋ฃจํธ์๋ง ์ค์น!
๋น๋ & ๋ฐฐํฌ & ํ ์คํธ๋ฅผ ํ ๋ฒ์ ํด๋ณด์!
Learn์์ ์ง์ํ๋ ๋ค์ํ ์คํฌ๋ฆฝํธ๊ฐ ์์ง๋ง ์ฃผ๋ก ์ฐ๋ script๋ง ์ฐ์ ์ ๋ฆฌํด๋ณธ๋ค!!
learn run {npm script}
: ๋ชจ๋ workspace์ npm script ์ํ
learn exec -- {CLI ๋ช
๋ น์ด}
: ๋ชจ๋ workspace์ CLI ๋ช
๋ น์ด ์ํ
learn publish
: ๋ชจ๋ workspace์ ๋ณ๊ฒฝ๋ ํจํค์ง publish
lerna version
: workspace ๋ฒ์ ์๋ ์์น + git tag + CHANGELOG
๋ค๋ฅธ ์คํฌ๋ฆฝํธ๋ ๋ฅผ ์ฐธ์กฐํด๋ณด์!