๐5์ฅ ํค์๋๐
npm
npx
package.json
ํจํค์ง ๋ฒ์ x.x.x
1. npm ์์๋ณด๊ธฐ
- Node Package Manager
- npm์ ์
๋ก๋๋ ๋
ธ๋ ๋ชจ๋์ ํจํค์ง๋ผ๊ณ ๋ถ๋ฅธ๋ค.
NPM ๋์ฒด์
- yarn : ํ์ด์ค๋ถ์์ ๊ฐ๋ฐ, React ๋๋ React Native ๋ฑ ํ์ด์ค๋ถ ์ง์์ ํ๋ ์์ํฌ ์ฌ์ฉ ์ ๋ณผ ์ ์์
- pnpm : npm์ ์ฑ๋ฅ์ ๊ฐ์ ํ ํจํค์ง ๋งค๋์
2. package.json์ผ๋ก ํจํค์ง ๊ด๋ฆฌํ๊ธฐ
- ์ค์นํ ํจํค์ง์ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ํ์ผ
- ๋
ธ๋ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์ , ํด๋ ๋ด๋ถ์ ๋ฌด์กฐ๊ฑด package.json์ ๋ง๋ค๊ณ ์์
- package.json์ ๋ง๋๋ ์ด๊ธฐํ ๋ช
๋ น์ด npm init
package.json ํ์ผ ๊ตฌ์กฐ
{
"name": "npmtest",
"version": "0.0.1",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "yuz",
"license": "ISC",
"dependencies": {
"express": "^4.18.2"
}
}
- npm run [๋ช
๋ น] : "scripts"์ ๋ฑ๋ก๋ ๋ช
๋ น์ด ์ฌ์ฉ
- npm install [ํจํค์ง1] [ํจํค์ง2] [ํจํค์ง3] ... : ํจํค์ง ๋ค์ด๋ก๋ (๋ค์ดํ ํจํค์ง๊ฐ package.json์ ๊ธฐ๋ก๋จ)
- package.json ํ์ผ: ์ง์ ์ค์นํ ํจํค์ง๋ฅผ ๊ธฐ๋ก
- package-lock.json ํ์ผ: ํจํค์ง ๊ฐ์ ์์กด๊ด๊ณ ๋ช
์
- npm install --save-dev ์ต์
: ์ค์ ๋ฐฐํฌ ์์๋ ์ฌ์ฉ๋์ง ์๊ณ , ๊ฐ๋ฐ ์ค์๋ง ์ฌ์ฉ๋๋ ํจํค์ง
- npm install --global ์ต์
: ์ ์ญ ์ค์น (ํจํค์ง๋ฅผ ํ์ฌ ํด๋์ node_modules์ ์ค์นํ๋ ๊ฒ์ด ์๋๋ผ, npm์ด ์ค์น๋์ด ์๋ ํด๋์ ์ค์น, ๋๋ถ๋ถ ๋ช
๋ น์ด๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ ์ญ ์ค์นํจ)
- rimraf ํจํค์ง(๋ช
๋ น์ด ์ฌ์ฉ): ์ง์ ํ ํ์ผ์ด๋ ํด๋๋ฅผ ์ง์ฐ๋ ๋ฆฌ๋
์ค ๋ช
๋ น์ด rm -rf
npx
(Node Package eXecute)
ํจํค์ง ์ ์ญ ์ค์น๋ฅผ ํผํ๊ณ ์ ํ ๋ (package.json์ ๊ธฐ๋ก๋์ง ์์ ๋ค์ ์ค์นํ ๋ ์ด๋ ค์์ด ์์)
- npm install --save-dev rimraf
- npx rimraf node_modules
๋ชจ๋์ package.json์ devDependencies ์์ฑ์ ๊ธฐ๋กํ ํ, npx ๋ช
๋ น์ด๋ฅผ ๋ถ์ฌ ์ฌ์ฉํ๋ฉด ๋จ.
๊ทธ๋ฌ๋ฉด ํจํค์ง๋ฅผ ์ ์ญ ์ค์นํ ๊ฒ๊ณผ ๊ฐ์ ํจ๊ณผ(๋ช
๋ น์ด๋ก ์ฌ์ฉ ๊ธฐ๋ฅ)๋ฅผ ์ป์ ์ ์์!
3. ํจํค์ง ๋ฒ์ ์ดํดํ๊ธฐ
ํจํค์ง ๋ฒ์ ํ๊ธฐ x.x.x
- ์ฒซ ๋ฒ์งธ ์๋ฆฌ; ๋ฉ์ด์ ๋ฒ์ : ํ์ํธํ์ด ๋์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ ์
๋ฐ์ดํธ ์ ์ฌ๋ฆผ (์๋ฅผ ๋ค์ด, 1.5.0 ๋ฒ์ ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ด 2.0.0์ผ๋ก ์
๋ฐ์ดํธํ์ ๋ ์๋ฌ๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ํฌ๋ค)
- ๋ ๋ฒ์งธ ์๋ฆฌ; ๋ง์ด๋ ๋ฒ์ : ํ์ํธํ์ด ๋๋ ๋ณ๊ฒฝ ์ฌํญ ์
๋ฐ์ดํธ ์ ์ฌ๋ฆผ
- ์ธ ๋ฒ์งธ ์๋ฆฌ; ํจ์น ๋ฒ์ : ์ ๊ธฐ๋ฅ ์ถ๊ฐ X, ๊ฐ๋จํ ๋ฒ๊ทธ์ ๋ํ ์์ ๋ฒ์ ์ ๋ด๋์ ๊ฒฝ์ฐ ์ฌ๋ฆผ
๋ฒ์ ๊ด๋ จ ๊ธฐํธ
- ^ : ๋ง์ด๋ ๋ฒ์ ๊น์ง๋ง ์ค์นํ๊ฑฐ๋ ์
๋ฐ์ดํธ. npm i express@^1.1.1 ์ด๋ผ๋ฉด 1.1.1 ์ด์๋ถํฐ 2.0.0 ๋ฏธ๋ง ๋ฒ์ ๊น์ง ์ค์น๋จ. 2.0.0์ ์ค์น๋์ง ์์. 1.x.x ๋ก๋ ํ๊ธฐํ ์ ์์
- ~ : ํจ์น ๋ฒ์ ๊น์ง๋ง ์ค์นํ๊ฑฐ๋ ์
๋ฐ์ดํธ. 1.1.x๋ก๋ ํํ ๊ฐ๋ฅ
- >, <, > =, < =, = : ์ด๊ณผ, ๋ฏธ๋ง, ์ด์, ์ดํ, ๋์ผ. npm i express@>1.1.1 ๋ฐ๋์ 1.1.1 ๋ฒ์ ๋ณด๋ค ๋์ ๋ฒ์ ์ค์น
- @next ๊ฐ์ฅ ์ต๊ทผ ๋ฐฐํฌํ
4. ๊ธฐํ npm ๋ช
๋ น์ด
- npm outdated :๋ช
๋ น์ด๋ก ์
๋ฐ์ดํธํ ์ ์๋ ํจํค์ง๊ฐ ์๋์ง ํ์ธ
- npm uninstall [ํจํค์ง์ด๋ฆ] ๋๋ npm rm [ํจํค์ง์ด๋ฆ] : node_modules์ package.json์์ ์ ๊ฑฐํ๋ ๋ช
๋ น
- npm search [๊ฒ์์ด] : npm ํจํค์ง ๊ฒ์
- npm info [ํจํค์ง์ด๋ฆ] : ํจํค์ง์ ์ธ๋ถ ์ ๋ณด
- npm login : ํจํค์ง ๋ฐฐํฌ ์ npm ๊ณต์ ์ฌ์ดํธ ๋ก๊ทธ์ธ
- npm logout : ๋ก๊ทธ์์
- npm version [๋ฒ์ ] ๋๋ npm version [major|minor|patch] : package.json์ ๋ฒ์ ์ ์ฌ๋ฆผ. ๋ฌธ์์ด ์
๋ ฅ ์ ํด๋น ๋ถ๋ถ์ ์ซ์๋ฅผ 1 ์ฌ๋ฆผ
- npm deprecate [ํจํค์ง์ด๋ฆ] [๋ฒ์ ] [๋ฉ์์ง] : (ํจํค์ง ๋ฐฐํฌ ์) ํด๋น ํจํค์ง๋ฅผ ์ค์นํ ๋ ๊ฒฝ๊ณ ๋ฉ์์ง๋ฅผ ๋์
- npm publish : ์์ ์ด ๋ง๋ ํจํค์ง ๋ฐฐํฌ
- npm unpublish : ์์ ์ด ๋ฐฐํฌํ ํจํค์ง ์ ๊ฑฐ (24์๊ฐ ์ด๋ด์ ๋ฐฐํฌํ ํจํค์ง๋ง ๊ฐ๋ฅ)
- ๊ธฐํ ๋ ๋ง์ ๋ช
๋ น์ด๋ npm ๊ณต์ ๋ฌธ์ (https://docs.npmjs.com/)์ CLI Commands์์ ํ์ธ
Node.js #2
Editor : ์ ์ฆ