
npm ์ด๋?
NPM์ Node.js๋ฅผ ์ํ ํจํค์ง ๋งค๋์ ์ ์ค์น ๊ด๋ฆฌ์๋ก, ์๋ง์ ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๊ตฌ๋ค์ด ์ ๋ก๋๋๋ ์ ์ฅ์์ ๋๋ค. NPM CLI๋ฅผ ์ฌ์ฉํ์ฌ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋๊ตฌ๋ฅผ ์ฝ๊ฒ ์ค์นํ ์ ์์ผ๋ฉฐ, ํ๋ก์ ํธ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ๋ช ๋ น์ด๋ฅผ ์ ๊ณตํฉ๋๋ค. Node.js๋ฅผ ์ค์นํ๋ฉด ์๋์ผ๋ก NPM๋ ์ค์น๋๋ฉฐ, ์ด๋ ํจํค์ง๋ฅผ ์๋ก ๊ณต์ ํ๊ธฐ ์ํจ์ ๋๋ค. NPM์ ์ธ๊ณ์์ ๊ฐ์ฅ ํฐ ์ํํธ์จ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ฉฐ, 800,000๊ฐ ์ด์์ ์ฝ๋ ํจํค์ง๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ์คํ์์ค ๊ฐ๋ฐ์๋ค์ NPM์ ์ฌ์ฉํ์ฌ ์ํํธ์จ์ด๋ฅผ ๊ณต์ ํ๋ฉฐ, ๋ง์ ๊ธฐ์ ๋ค๋ NPM์ ์ด์ฉํ์ฌ ๊ฐ์ธ์ ์ธ ๊ฐ๋ฐ์ ๊ด๋ฆฌํฉ๋๋ค. NPM์ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
npm์ ์ด์ฉํด ํจํค์ง ์ค์นํ๊ธฐ
1. package.json
ํ๋ก์ ํธ์ ์ ๋ณด์ ์์กด์ฑ ํจํค์ง๋ฅผ ๊ธฐ๋กํ๋ package.json ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. ์ด ํ์ผ์ ํ๋ก์ ํธ์ ์ ๋ณด์ ํ์ํ ํจํค์ง์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ JSON ํ์์ ํ์ผ์ ๋๋ค.
npm init
2. npm install
ํ์ํ ํจํค์ง๋ฅผ ์ค์นํ ๋๋ npm install ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๋, ์ค์น๋ ํจํค์ง๋ package.json์ dependencies ํญ๋ชฉ์ ์ถ๊ฐ๋๋ฉฐ, node_modules ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค.
npm install OOO
npm i --save OOO
# node_modules ๋๋ ํ ๋ฆฌ์ ๋ชจ๋์ ์ค์นํ๊ณ , ์ถ๊ฐ๋ก package.json์ ๋ํ๋์๋ฅผ ์ถ๊ฐํด์ค
# node15 ๋ถํด --save์ต์
์ด default ๊ฐ์ด ๋์์
3. ์ ์ญ ํจํค์ง ์ค์น
์ฃผ๋ก ํ๋ก์ ํธ์ ์ข ์๋์ง ์๋ ์ปค๋งจ๋๋ผ์ธ ๋๊ตฌ๋ค์ ์ ์ญ ํจํค์ง๋ก ์ถ๊ฐํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- npm install์ ํ๋ก์ ํธ ํด๋์ ํจํค์ง๋ฅผ ์ค์นํ์ง๋ง -g ๋ ์์คํ ํด๋์ ํจํค์ง๋ฅผ ์ค์นํจ
- -g ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ package.json ์ ์์กด์ฑ ๋ชฉ๋ก์ ๋น ์ง๋ค.
npm install OOO -g
npm install OOO --global
4. ๊ฐ๋ฐ ํ๊ฒฝ ํจํค์ง ์ค์น
๊ฐ๋ฐ ์ค์ธ ํ๋ก์ ํธ์์๋ง ์ฌ์ฉ๋๋ ํจํค์ง๋ฅผ ์ค์นํ๊ณ ์ ํ ๋์๋ --save-dev ์ต์ ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋, ์ค์น๋ ํจํค์ง๋ package.json์ devDependencies ํญ๋ชฉ์ ์ถ๊ฐ๋ฉ๋๋ค.
npm install OOO -D
npm install OOO --save-dev
5. ๋ชจ๋ ์์กด์ฑ ํจํค์ง ์ค์น
package.json์ dependencies์ devDependencies ํญ๋ชฉ์ ๋ชจ๋ ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
npm install
5. ํ๋ก๋์ ์ฉ ํจํค์ง๋ง ์ค์น
ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ ๋์๋ ๊ฐ๋ฐ์ฉ ์์กด์ฑ์ ๊ฐ์ด ํฌํจํ ํ์๊ฐ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ, --production ์ต์ ์ ์ฌ์ฉํ์ฌ dependencies๋ง node_modules์ ๋ด๋ ค๋ฐ์ต๋๋ค.
npm install --production
6. ํจํค์ง์ ๋ฒ์ ์ ์ง์ ํ์ฌ ์ค์นํ๊ธฐ
ํจํค์ง ์ด๋ฆ ๋ค์ @ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ๊ณ , ๋ฒ์ ์ ์ง์ ํ๋ฉด ๋ฉ๋๋ค.
~ ๋ฒ์ (tilde version) ๋ง์ด๋ ๋ฒ์ ์ ์ง, ํจ์น ๋ ๋ฒจ ๋ฒ์ ๋ง ์ ๊ทธ๋ ์ด๋
^ ๋ฒ์ (caret version) ๋ฉ์ด์ ๋ฒ์ ์ ์ง, ๋ง์ด๋ ๋ฒ์ ๊น์ง ์ ๊ทธ๋ ์ด๋
npm install OOO @[version]
# ์ ํํ 1.13.0์ธ ๋ฒ์ ์ค์น
npm install OOO@1.13.0
# 1.13.XXX ์ค์น
# 1.13.0 ์ด์, 1.14.0 ๋ฏธ๋ง ๋ฒ์ ์ค์น
npm install OOO@~1.13.0
# 1.XXX.XXX ์ค์น
# 1.13.0 ์ด์, 2.0.0 ๋ฏธ๋ง ๋ฒ์ ์ค์น
npm install OOO@^1.13.0

๋ค์ํ npm ๋ช ๋ น์ด
๋ชจ๋ ์ง์ฐ๊ธฐ
package.json์ dependencies์ devDependencies์์ ์ญ์ ํ๊ณ node_modules์์๋ ์ญ์ ํ๋ค.
npm uninstall OOO
npm ์บ์ ์ญ์
์ฌ๋ฌ ํ๋ก์ ํธ ์งํ ์ค, ๋ชจ๋ ์ถฉ๋ ๋ฐ ์๊ธฐ์น ๋ชปํ ์๋ฌ ๋ฐ์์ ์ฌ์ฉํ๋ค.
npm cache clean
๊ธ๋ก๋ฒ ๋ชจ๋ ๊ด๋ จ ๋ช ๋ น์ด
$ npm list -g --depth=0
# ๊ธ๋ก๋ฒ ๋ชจ๋ ํ์ธ
console
โโโ eslint@6.8.0
โโโ eslint-config-airbnb-base@14.0.0
โโโ eslint-plugin-import@2.19.1
โโโ eslint-plugin-prettier@3.1.2
$ npm uninstall -g <ํจํค์ง์ด๋ฆ>
#๊ธ๋ก๋ฒ ๋ชจ๋ ์ญ์
- ์์คํ ์ node_modules ํด๋ ๊ฒฝ๋ก๋ npm root -g ๋ฅผ ํตํด ์ฐพ์ ์ ์๋ค.
- Win10 ๊ธฐ์ค์ผ๋ก๋ (์ฌ์ฉ์๋ช )\AppData\Roaming\npm\node_modules
- MAC ๊ธฐ์ค /usr/local/lib/node_modules