728x90
๋ฐ์ํ
5.1 npm ์์๋ณด๊ธฐ
๐ NPM(Node Package Manager)
- ๋ ธ๋์ ํจํค์ง ๋งค๋์
- ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ง๋ ์์ค ์ฝ๋๋ค์ ๋ชจ์๋ ์ ์ฅ์
- ๋จ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅ
- ์ด๋ฏธ ์๋ ๊ธฐ๋ฅ์ ๋ค์ ๊ตฌํํ ํ์๊ฐ ์์ด ํจ์จ์
- ์คํ ์์ค ์ํ๊ณ๋ฅผ ๊ตฌ์ฑ์ค
5.2 package.json์ผ๋ก ํจํค์ง ๊ด๋ฆฌํ๊ธฐ
๐ package.json
- ํ์ฌ ํ๋ก์ ํธ์ ๋ํ ์ ๋ณด์ ์ฌ์ฉ ์ค์ธ ํจํค์ง์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์ ํ์ผ
- ๊ฐ์ ํจํค์ง๋ผ๋ ๋ฒ์ ๋ณ๋ก ๊ธฐ๋ฅ์ด ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ๋ฒ์ ์ ๊ธฐ๋กํด๋์ด์ผ ํจ
- ๋์ผํ ๋ฒ์ ์ ์ค์นํ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์
- ๋ ธ๋ ํ๋ก์ ํธ ์์ ์ package.json๋ถํฐ ๋ง๋ค๊ณ ์์ํจ(npm init)
๐ package.json ์์ฑ๋ค
- package name: ํจํค์ง์ ์ด๋ฆ, package.json์ name ์์ฑ์ ์ ์ฅ
- version: ํจํค์ง์ ๋ฒ์ , npm์ ๋ฒ์ ์ ๋ค์ ์๊ฒฉํ๊ฒ ๊ด๋ฆฌ
- entry point: ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ํ์ผ ์ง์ ์ , ๋ณดํต ๋ง์ง๋ง์ผ๋ก module.exports๋ฅผ ํ๋ ํ์ผ ์ง์ , package.json์ main ์์ฑ์ ์ ์ฅ
- test command: ์ฝ๋๋ฅผ ํ ์คํธํ ๋ ์ ๋ ฅํ ๋ช ๋ น์ด, package.json scripts ์์ฑ ์์ test ์์ฑ์ ์ ์ฅ
- git repository: ์ฝ๋๋ฅผ ์ ์ฅํด ๋ Git ์ ์ฅ์ ์ฃผ์๋ฅผ ์๋ฏธ, ๋์ค์ ์์ค์ ๋ฌธ์ ๊ฐ ์๊ฒผ์ ๋ ์ฌ์ฉ์๋ค์ด ์ด ์ ์ฅ์์ ๋ฐฉ๋ฌธํด ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ ์๋ ์๊ณ , ์ฝ๋ ์์ ๋ณธ ์ ๋ก๋ ๊ฐ๋ฅ, package.json์ repository ์์ฑ์ ์ ์ฅ
- keywords: ํค์๋๋ npm ๊ณต์ ํํ์ด์ง(https://npmjs.com)์์ ํจํค์ง๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๊ฒ ํด ์ค, package.json์ keywords ์์ฑ์ ์ ์ฅ
- license: ํด๋น ํจํค์ง์ ๋ผ์ด์ ์ค ์ถ๊ฐ
๐ npm ์คํฌ๋ฆฝํธ
- npm init์ด ์๋ฃ๋๋ฉด ํด๋์ package.json์ด ์์ฑ๋จ
- npm run [์คํฌ๋ฆฝํธ๋ช ]์ผ๋ก ์คํฌ๋ฆฝํธ ์คํ
๐ ํจํค์ง ์ค์นํ๊ธฐ
- npm install [ํจํค์ง๋ช ]์ผ๋ก ํจํค์ง ์ค์น
- npm install [ํจํค์ง๋ช 1] [ํจํค์ง๋ช 2] [ํจํค์ง๋ช 3] ...์ผ๋ก ์ฌ๋ฌ ํจํค์ง ๋์์ ์ค์น
- package.json์ ๊ธฐ๋ก๋จ (dependencies์ express ์ด๋ฆ๊ณผ ๋ฒ์ ์ถ๊ฐ๋จ)
๐ node-modules
- npm install ์ node_modules ํด๋ ์์ฑ
- ๋ด๋ถ์ ์ค์นํ ํจํค์ง๋ค์ด ๋ค์ด ์์
- express ์ธ์๋ express์ ์์กด ๊ด๊ณ๊ฐ ์๋ ํจํค์ง๋ค์ด ๋ชจ๋ ์ค์น๋จ
- package-lock.json๋ ์์ฑ๋์ด ํจํค์ง ๊ฐ ์์กด ๊ด๊ณ๋ฅผ ๋ช ํํ๊ฒ ํ์ํจ
๐ ๊ฐ๋ฐ์ฉ ํจํค์ง
- npm install --save-dev ํจํค์ง๋ช
๋๋ npm i -D ํจํค์ง๋ช
- devDependencies์ ์ถ๊ฐ๋จ
๐ npm ci
- npm i๋ฅผ ํ ๋๋ง๋ค package.json๊ณผ package-lock.json์ด ๋ณํ ์ ์์
- ๋ฐฐํฌ ์์๋ npm ci๋ก ๋ฐฐํฌํ๊ธฐ
- node_modules๋ git ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ ์ปค๋ฐํ ํ์๊ฐ ์์
- npm i๋ npm ci๋ฅผ ํ๋ฉด ๋์ผํ๊ฒ ๋ณต๊ตฌ๋จ
๐ ๊ธ๋ก๋ฒ(์ ์ญ) ํจํค์ง
- npm install --global ํจํค์ง๋ช
๋๋ npm i -g ํจํค์ง๋ช
- ๋ชจ๋ ํ๋ก์ ํธ์ ์ฝ์์์ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์์
- ์์ ๋ rm –rf(๋ฆฌ๋ ์ค์ ์ญ์ ๋ช ๋ น)๋ฅผ ํ๋ด๋ด๋ rimraf ํจํค์ง์ ๊ธ๋ก๋ฒ ์ค์น
- npx๋ก ๊ธ๋ก๋ฒ ์ค์น ์์ด ๊ธ๋ก๋ฒ ๋ช ๋ น์ด ์ฌ์ฉ ๊ฐ๋ฅ
5.3 ํจํค์ง ๋ฒ์ ์ดํดํ๊ธฐ
๐ SemVer ๋ฒ์ ๋
- ๋
ธ๋ ํจํค์ง์ ๋ฒ์ ์ SemVer(์ ์์ ๋ฒ์ ๋) ๋ฐฉ์์ ๋ฐ๋ฆ
- Major(์ฃผ ๋ฒ์ ), Minor(๋ถ ๋ฒ์ ), Patch(์ ๋ฒ์ )
- ๋ ธ๋์์๋ ๋ฐฐํฌ๋ฅผ ํ ๋ ํญ์ ๋ฒ์ ์ ์ฌ๋ ค์ผ ํจ
- Major๋ ํ์ ๋ฒ์ ๊ณผ ํธํ๋์ง ์์ ์์ ์ฌํญ์ด ์๊ฒผ์ ๋ ์ฌ๋ฆผ
- Minor๋ ํ์ ๋ฒ์ ๊ณผ ํธํ๋๋ ์์ ์ฌํญ์ด ์๊ฒผ์ ๋ ์ฌ๋ฆผ
- Patch๋ ๊ธฐ๋ฅ์ ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ์ ๋ ์ฌ๋ฆผ
๐ ๋ฒ์ ๊ธฐํธ ์ฌ์ฉํ๊ธฐ
- ๋ฒ์ ์์ ๊ธฐํธ๋ฅผ ๋ถ์ฌ ์๋ฏธ๋ฅผ ๋ํจ
- ^1.1.1: ํจํค์ง ์ ๋ฐ์ดํธ ์ minor ๋ฒ์ ๊น์ง๋ง ์ ๋ฐ์ดํธ๋จ(2.0.0 ๋ฒ์ ์ ์ ๋จ)
- ~1.1.1: ํจํค์ง ์ ๋ฐ์ดํธ ์ patch๋ฒ์ ๊น์ง๋ง ์ ๋ฐ์ดํธ ๋จ(1.2.0๋ฒ์ ์ ์ ๋จ)
- >=, <=, >, <๋ ์ด์, ์ดํ, ์ด๊ณผ, ๋ฏธ๋ง.
- @latest๋ ์ต์ ๋ฒ์ ์ ์ค์นํ๋ผ๋ ์๋ฏธ
- ์คํ์ ์ธ ๋ฒ์ ์ด ์กด์ฌํ๋ค๋ฉด @next๋ก ์คํ์ ์ธ ๋ฒ์ ์ค์น ๊ฐ๋ฅ(๋ถ์์ ํจ)
- ๊ฐ ๋ฒ์ ๋ง๋ค ๋ถ๊ฐ์ ์ผ๋ก ์ํ/๋ฒ ํ/RC ๋ฒ์ ์ด ์กด์ฌํ ์๋ ์์(1.1.1-alpha.0, 2.0.0-beta.1, 2.0.0-rc.0)
5.4 ๊ธฐํ npm ๋ช ๋ น์ด
๐ ๊ธฐํ npm ๋ช ๋ น์ด
- npm outdated: ์ด๋ค ํจํค์ง์ ๊ธฐ๋ฅ ๋ณํ๊ฐ ์๊ฒผ๋์ง ์ ์ ์์
- npm update: package.json์ ๋ฐ๋ผ ํจํค์ง ์ ๋ฐ์ดํธ
- npm uninstall ํจํค์ง๋ช : ํจํค์ง ์ญ์ (npm rm ํจํค์ง๋ช ์ผ๋ก๋ ๊ฐ๋ฅ)
- npm search ๊ฒ์์ด: npm ํจํค์ง๋ฅผ ๊ฒ์ํ ์ ์์(npmjs.com์์๋ ๊ฐ๋ฅ)
- npm info ํจํค์ง๋ช : ํจํค์ง์ ์ธ๋ถ ์ ๋ณด ํ์ ๊ฐ๋ฅ
- npm login: npm์ ๋ก๊ทธ์ธ์ ํ๊ธฐ ์ํ ๋ช ๋ น์ด(npmjs.com์์ ํ์๊ฐ์ ํ์)
- npm whoami: ํ์ฌ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์๋ ค์ค
- npm logout: ๋ก๊ทธ์ธํ ๊ณ์ ์ ๋ก๊ทธ์์
- npm version ๋ฒ์ : package.json์ ๋ฒ์ ์ ์ฌ๋ฆผ(Git์ ์ปค๋ฐ๋ ํจ)
- npm deprecate [ํจํค์ง๋ช ][๋ฒ์ ] [๋ฉ์์ง]: ํจํค์ง๋ฅผ ์ค์นํ ๋ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ๋์ฐ๊ฒ ํจ(์ค๋ฅ๊ฐ ์๋ ํจํค์ง์ ์ ์ฉ)
- npm publish: ์์ ์ด ๋ง๋ ํจํค์ง๋ฅผ ๋ฐฐํฌ
- npm unpublish --force: ์์ ์ด ๋ง๋ ํจํค์ง๋ฅผ ๋ฐฐํฌ ์ค๋จ(๋ฐฐํฌ ํ 24์๊ฐ ๋ด์๋ง ๊ฐ๋ฅ)
- ๊ธฐํ ๋ช ๋ น์ด๋ https://docs.npmjs.com์ CLI Commands์์ ํ์ธ
5.5 ํจํค์ง ๋ฐฐํฌํ๊ธฐ
๐ ํจํค์ง ๋ฐฐํฌ ์์
1. npm ํ์๊ฐ์
2. ๋ฐฐํฌํ ํจํค์ง ์์ฑ
3. npm version ์ ๋ ฅ
4. npm publish ์ ๋ ฅ
๐ ๋ฐฐํฌ ์ทจ์ํ๊ธฐ
- 24์๊ฐ ๋ด์ npm unpublish ํจํค์ง๋ช --force ์ ๋ ฅ
์ถ์ฒ
Node.js ๊ต๊ณผ์ ๊ฐ์ 3ํ(์กฐํ์)
728x90
๋ฐ์ํ
'WEB > NODE.JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[NODE.JS] 4์ฅ HTTP ๋ชจ๋๋ก ์๋ฒ ๋ง๋ค๊ธฐ (0) | 2023.04.17 |
---|---|
[NODE.JS] 1์ฅ ๋ ธ๋ ์์ํ๊ธฐ (0) | 2023.04.13 |
[NODE.JS] 3. mongoDB model & Schema (0) | 2021.10.06 |
[NODE.JS] 2. mongoDB ์ฐ๊ฒฐํ๊ธฐ (2) | 2021.10.01 |
[NODE.JS] 1. Node.js์ Express.js ๋ค์ด๋ก๋ํ๊ธฐ (2) | 2021.10.01 |