ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ npm์ด๋?
๋ ธ๋ ํจํค์ง ๋งค๋์ ๋ ์ ์ธ๊ณ์ ๊ฐ๋ฐ์๋ค์ด ๋ง๋ ๋ค์ํ ๊ธฐ๋ฅ(ํจํค์ง)๋ฅผ ์ค์นํ๊ณ ๊ด๋ฆฌํ๋ ๋งค๋์ ๋ค.
์ ์ธ๊ณ์ ๊ฐ๋ฐ์๋ค์ด ํผ์, ํ ๋จ์, ํ์ฌ ์ฐจ์์์ ์์ ํ ํจํค์ง๋ฅผ npm ์ํ๊ณ์ ์ ๋ก๋ํ๋ ๊ตฌ์กฐ๋ก ์ํ๋ ํจํค์ง๋ฅผ ๊ฒ์ํ์ฌ npm install๋ก ์ค์นํ๋ ๊ฒ์ด๋ค.
npm์ Node.js๋ฅผ ์ค์นํ ๋ ์๋์ผ๋ก ๊ฐ์ด ์ค์น๋๋ฏ๋ก ๋ฐ๋ก ์ค์นํ ํ์๋ ์๋ค.
์ด์ vscode์์ ํ๋ก์ ํธ ํ์ผ์ ์ด๊ณ ํฐ๋ฏธ๋์์ ๋ค์์ ์์๋๋ก ์
๋ ฅํด๋ณด์.
1. npm init -y
ํฐ๋ฏธ๋์์ npm init -y๋ฅผ ์ ๋ ฅํ๋ฉด package.json ํ์ผ์ด ์์ฑ๋๋ค.
package.json์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ๋ค.
- name์ ํ๋ก์ ํธ์ ์ด๋ฆ์ ๋ช ์ํ๋ ์ต์ ์ด๋ค.
- version์ ํ๋ก์ ํธ์ ๋ฒ์ ์ ์ ๋ ์ต์ ์ด๋ค.
- description์ ํ๋ก์ ํธ์ ๊ดํ ์ค๋ช ์ ์ ๋ ์ต์ ์ด๋ค.
- main์ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ํจํค์ง๋ก ๋ง๋ค์ด npm ์ํ๊ณ์ ์ ๋ก๋ํ ๋ ํ์ํ ์ต์ ์ผ๋ก ๋จ์ ์น์ฌ์ดํธ๋ฅผ ๋ง๋ค๋๋ ์ญ์ ํด๋ ๋๋ค.
- scripts๋ ํ์ฌ ํ๋ก์ ํธ ๋ด๋ถ์์ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ์คํฌ๋ฆฝํธ ๋ช ๋ น์ ๋ช ์ํด๋๋ ์ต์ ์ด๋ค.
- keyword๋ ํ๋ก์ ํธ์ ๊ด๋ จ๋ ํค์๋๋ฅผ ์ ๋ ์ต์ ์ด๋ค.
- author๋ ํ๋ก์ ํธ์ ์์ ์ฃผ๋ฅผ ์ ๋ ์ต์ ์ด๋ค.
- license๋ ํ๋ก์ ํธ์ ๋ผ์ด์ผ์ค๋ฅผ ๋ช ์ํ๋ ์ต์ ์ด๋ค.
2. npm install parcel-bundler -D
ํฐ๋ฏธ๋์ npm install parcel-bundler -D๋ฅผ ์ ๋ ฅํ๋ฉด ์ฝ๊ฐ์ ์๊ฐ์ด ์ง๋๊ณ ์ค์น๊ฐ ์๋ฃ๋๋ค.
ํ๋ก์ ํธ ํ์ผ์ node_modules๋ผ๋ ํด๋์ package-lock.jsonํ์ผ์ด ์์ฑ๋๋ค.
node_modules์์๋ ๋ฐฉ๊ธ ์ค์นํ parcel-bundler๊ฐ ๋ค์ด์๋ค.
์ฆ, npm install๋ก ํจํค์ง๋ฅผ ์ค์นํ๋ฉด node_modules ํด๋ ์์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค.
node_modules ์์ ๋ค์ด์๋ ๋ชจ๋ ๋ชจ๋์ ํ๋์ ํจํค์ง๋ก ์ค์นํ์ง ์์ ํจํค์ง๋ค๋ ๊ฐ์ด ๋ค์ด์๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ ์ด๋ parcel-bundler๋ผ๋ ํจํค์ง๋ฅผ ํ์ฉํ ๋ ํ์ํ ํจํค์ง๋ค์ด๊ธฐ ๋๋ฌธ์ด๋ค.
parcel-bundler์์ ์๋ package.json์ ๋ค์ด๊ฐ๋ณด๋ฉด dependencies์ต์ ์ ์ฌ๋ฌ ํจํค์ง๋ค์ด ๋ช ์๋ผ ์๋ค.
์ฒ์์ ๋ง๋ค์๋ package.json์ ๋ค์ ๋ค์ด๊ฐ๋ณด๋ฉด devDependencies ์ต์ ์ด ์์ฑ๋๊ณ parcel-bundler๊ฐ ๋ช ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
3. npm install lodash
ํฐ๋ฏธ๋์ npm install lodash๋ฅผ ์ ๋ ฅํ๋ฉด package.json์ dependencies ์ต์ ์ lodash๊ฐ ๋ช ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ฆ, npm install์ ํ๋ฉด ํจํค์ง๊ฐ ์ค์น๋๊ณ node_modules ํด๋๋ก ๋ค์ด๊ฐ๋๋ฐ ๊ทธ ๋ด์ญ์ด package.json์ dependencies ์ต์ ์ ๋ช ์๋๋ ๊ฒ์ด๋ค.
ํน์ node_modules ํด๋๋ฅผ ์ค์๋ก ์ญ์ ํด๋ package.json์ dependencies์๋ ๋ด์ญ์ด ๊ทธ๋๋ก ๋จ๋๋ค.
๋ฐ๋ผ์ ํฐ๋ฏธ๋์์ npm install (npm i)์ ์ ๋ ฅํ๋ฉด package.json ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๋ค์ ํ ๋ฒ์ node_modules๋ฅผ ์ค์นํ ์ ์๋ค.
ํน์ ํจํค์ง๋ฅผ ์ค์นํ๋ฉด package-lock.jsonํ์ผ์ด ์ค์น๋๋๋ฐ ์ฌ๊ธฐ์๋ package.json์ ๋ช ์๋ ๋ชจ๋๋ค์ด ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ ๋ค๋ฅธ ๋ชจ๋ ๋๋ ํจํค์ง์ ๋ํ ์ ๋ณด๊ฐ ์๋์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค.
์ด๋ฆ์ lock์ด ์๋ฏ ๋ด๊ฐ ์ง์ ์ ์ผ๋ก ๊ด๋ฆฌํ ํ์๊ฐ ์๋ค.
๐ฅnode_modules์ ์ญ์ ํด๋ ์ธ์ ๋ ๋ค์ ์ค์นํ ์ ์์ง๋ง package.json๊ณผ package-lock.json๋ ์ ๋๋ก ์ญ์ ๋์ด์๋ ์๋๋ค.๐ฅ
๐ค -D๋ ๋ญ์ง?
์ค์นํ ๋ ๋ค์ -D๋ฅผ ๋ถ์ด๋ฉด devDependencies์ ์ค์น๋๊ณ ๋ถ์ด์ง ์์ผ๋ฉด dependencies์ ์ค์น๊ฐ ๋๋๋ฐ ์ฐจ์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
-D๋ฅผ ๋ถ์ด๋ฉด ๊ฐ๋ฐ์ฉ ์์กด์ฑ ํจํค์ง ์ค์น๋ก ๋์ค์ ์น๋ธ๋ผ์ฐ์ ์์๋ ํ์ํ์ง ์๋ค๋ ์๋ฏธ์ด๋ค.
๋ถ์ด์ง ์์ผ๋ฉด ์ผ๋ฐ ์์กด์ฑ ํจํค์ง๋ก ์ค์ ์น๋ธ๋ผ์ฐ์ ์์๋ ๋์ํ ์ ์์์ ์ ์ ๋ก ํ๋ ๊ฒ์ด๋ค.
์ฆ, ํจํค์ง๋ฅผ ์ค์นํ ๋ ๊ฐ๋ฐํ ๋๋ง ์ฌ์ฉํ ๊ฒ์ธ์ง ์ค์ ์น์ฌ์ดํธ์์ ๋์ํ๋ ์ฉ๋์ธ์ง๋ฅผ ๊ตฌ๋ถํ์ฌ ์ค์นํด์ผ ํ๋ค.
๋ฐ๋ผ์ ์์ ์ค์นํ parcel-bundler๋ ๊ฐ๋ฐ์ฉ์ผ๋ก ์ค์นํ ๊ฒ์ด๊ณ lodash๋ ์ค์ ์น์ฌ์ดํธ์์ ๋์์ํค๋ ์ฉ๋๋ผ๊ณ ๋ณผ ์ ์๋ค.
'JS > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
4.17.20๋ฒ์ ๊ณผ 4.17.21๋ฒ์ ์ ๋ฌด์จ ์ฐจ์ด..? ์ ์์ ๋ฒ์ (SemVer)์ ๋ํด ์์๋ณด์ ๐ (0) | 2022.11.04 |
---|---|
npm run dev๋ก ๊ฐ๋ฐ ์๋ฒ ์คํํ๊ธฐ ๐ฏ (0) | 2022.11.04 |
Node.js์ nvm ๐ก (0) | 2022.11.02 |