์ ์์ ๋ฒ์ ์ด๋?
์ ์์ ๋ฒ์ ์ ์ํํธ์จ์ด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ท์น์ผ๋ก, ํ๋ก์ ํธ๊ฐ ๊ฐ๋ฐ๋๋ ํน์ ํ ์์ ์ ์ํ์ ์๋ฏธ๋ฅผ ๋ถ์ฌํด ์ซ์๋ฅผ ๋งค๊ธฐ๋ ๋ฐฉ์์ด๋ค. Node.js์ npm์ ์ด๋ฌํ ์ ์์ ๋ฒ์ ๊ท์น์ ๋ฐ๋ฅธ๋ค.
์ ์์ ๋ฒ์ ์ ํ์
์ ์์ ๋ฒ์ ์ ๋ง์นจํ๋ก ๊ตฌ๋ถ๋๋ ์ธ๊ฐ์ง ์ซ์๋ฅผ ๊ฐ์ง๋ค. ๊ฐ๊ฐ์ ์ซ์๋ ์ฒซ๋ฒ์งธ๊ฐ major, ๋๋ฒ์งธ๊ฐ minor, ์ธ๋ฒ์งธ๊ฐ patch๋ผ๋ ์ด๋ฆ์ ๊ฐ๋๋ค. ์ฆ 3.2.1 ๋ฒ์ ์ major ๋ฒ์ ์ด 3, minor ๋ฒ์ ์ด 2, patch ๋ฒ์ ์ด 1์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ๋๋ค.
Major ๋ฒ์ (์ฃผ ๋ฒ์ )
major ๋ฒ์ ์ ๊ธฐ์กด ๋ฒ์ ๊ณผ๋ ํธํ๋์ง ์๋ ์๋ก์ด ๋ฒ์ ์ด๋ค. major ๋ฒ์ ์ด 3๋ฒ์ ์ด๋ผ๊ณ ํ์ ๋, ์ง์ ๋ฒ์ ์ธ 2๋ฒ์ ๊ณผ๋ ํธํ๋์ง ์๋๋ค๋ ๊ฒ์ด๋ค. ๊ธฐ์กด API๊ฐ ์ญ์ ๋๊ฑฐ๋ ๋ณ๊ฒฝ๋์ด, ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ด ๊นจ์ง๋ค๋ฉด major ๋ฒ์ ์ด ์ฌ๋ผ๊ฐ๋ค.
Minor ๋ฒ์ (๋ถ ๋ฒ์ )
minor ๋ฒ์ ์ ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋ฒ์ ์ด๋ค.
Patch ๋ฒ์ (์์ ๋ฒ์ )
patch ๋ฒ์ ์ ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋๋ ๋ฒ๊ทธ ๋ฐ ์คํ ๋ฑ์ด ์์ ๋ ๋ฒ์ ์ผ๋ก, ์๋ก์ด ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ง ์๋๋ค.
์ ์์ ๋ฒ์ ์ ๋ฒ์ ์ง์
npm์ ์ฌ์ฉํด์ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ ๋, package.json์์ ์์กด์ฑ ํจํค์ง ๋ชฉ๋ก์ ํ์ธํด๋ณด๋ฉด ์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ ์์ ๋ฒ์ ์์ ^
(์บ๋ฟ, caret) ๊ธฐํธ๊ฐ ๋ถ์ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ ์์ ๋ฒ์ ์์๋ ์ด๋ ๊ฒ ์์ ํน์ ๊ธฐํธ๋ฅผ ๋ถ์์ผ๋ก์จ ๋ฒ์ ์ ๋ฒ์๋ฅผ ์ง์ ํ ์ ์๋ค.
์บ๋ฟ ๋ฒ์ (^
, caret)
์บ๋ฟ ๋ฒ์๋ฅผ ์ฌ์ฉํ๋ฉด major ๋ฒ์ ์ ๊ณ ์ ํ๊ณ , minor ๋ฒ์ ๊ณผ patch ๋ฒ์ ์ ์
๋ฐ์ดํธ๋ฅผ ํ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, ^3.2.1
์ด๋ผ๋ฉด, 3.x.x
๋ฒ์ ์์ ์ต์ ๋ฒ์ ๊น์ง ์๋์ผ๋ก ์
๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ์ง๋ง, 4.0.0
๋ฒ์ ๊ณผ ๊ฐ์ด major ๋ฒ์ ์ ๋ณ๊ฒฝ์ ํ์ฉ๋์ง ์๋๋ค.
ํธ๋ ๋ฒ์ (~
, tilde)
ํธ๋ ๋ฒ์๋ฅผ ์ฌ์ฉํ๋ฉด major ๋ฒ์ ๊ณผ minor ๋ฒ์ ์ ๊ณ ์ ํ๊ณ , patch ๋ฒ์ ์ ์
๋ฐ์ดํธ๋ฅผ ํ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, ~1.2.3
์ด๋ผ๋ฉด, 1.2.x
๋ฒ์ ๋ด์์ patch ๋ฒ์ ๋ง ์
๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ๋ค. 1.2.4
, 1.2.5
์ ๊ฐ์ patch ๋ฒ์ ์ ๋ณ๊ฒฝ์ ํ์ฉ๋์ง๋ง, 1.3.0
๊ณผ ๊ฐ์ ๋ถ๋ฒ์ ๋๋ 2.0.0
๊ฐ์ major ๋ฒ์ ์ ๋ณ๊ฒฝ์ ํ์ฉ๋์ง ์๋๋ค.
npm ๋ฒ์ ๊ด๋ จ ๋ช ๋ น์ด
npm install <package>@x.x.x
: ์ ํํx.x.x
๋ฒ์ ์ ํจํค์ง๋ฅผ ์ค์นํ๊ฑฐ๋ ์ด๋ฏธ ์ค์น๋ ํจํค์ง์ ๋ฒ์ ์ ๋ณ๊ฒฝํ๋คnpm install <package>@^x.x.x
: ๋ฒ์ ๋ฒ์ ๋ด์์ ์ต์ ๋ฒ์ ์ ํจํค์ง๋ฅผ ์ค์นํ๊ฑฐ๋ ์ด๋ฏธ ์ค์น๋ ํจํค์ง์ ๋ฒ์ ์ ๋ณ๊ฒฝํ๋ค.npm install <package>@latest
: ํจํค์ง์ ๊ฐ์ฅ ์ต์ ์์ ๋ฒ์ ์ ์ค์นํ๊ฑฐ๋ ์ด๋ฏธ ์ค์น๋ ํจํค์ง์ ๋ฒ์ ์ ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝํ๋ค.npm update
: package.json์ ์ง์ ๋ ๋ฒ์ ๋ฒ์ ๋ด์์ ์ต์ ๋ฒ์ ์ผ๋ก ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํ๋ค.npm install <package> --save-exact
: ๊ธฐ๋ณธ์ ์ผ๋ก package.json์๋ ๋ฒ์ ๋ฒ์๊ฐ ๊ธฐ๋ก๋์ง๋ง,--save-exact
์ต์ ์ ์ฌ์ฉํ๋ฉด ์ ํํ ๋ฒ์ ์ด ๊ธฐ๋ก๋๋ค.