2022. 1. 3. 17:08ใnpm
npm ๊ทธ๋ฆฌ๊ณ node.js
NodeJS๋?
node.js๋ ์๋ฐ์คํฌ๋ฆฝํธ ์คํํ ์์๋ ํ๊ฒฝ์ด๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ ๋ธ๋ผ์ฐ์ ๋ฐ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉ๊ฐ๋ฅํ๊ธฐ์ ๋ค์ดํฐ๋ธ ์ฑ, ์ปค๋งจ๋๋ผ์ธ ๋ช ๋ น์ด ๊ฐ๋ฐ, ํ๋ก ํธ์๋ ๊ฐ๋ฐ, ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ฑ์์ ์ฌ์ฉ์ด ๋๋ค.
npm์?
npm์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ด๋ฃจ์ด์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋๊ตฌ์ด๋ค.
์ด๋ฅผ ์ด์ฉํ์ฌ ์ ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์์ฝ๊ฒ ์ค์นํ๊ณ ์ญ์ ํ๊ณ ์ค์ ์ ๊ด๋ฆฌํ ์ ์๋ค.
npm init -y๋ฅผ ํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก package.jsonํ์ผ์ด ์์ฑ๋๋ค.
package.json ํ์ผ ๋ด๋ถ๋ ์๋์ ๊ฐ๋ค.
{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
์ฌ๊ธฐ์ npm install react๋ฅผ ํ๋ค๋ฉด node_modules๋ผ๋ ํด๋๊ฐ ์๊ธฐ๋ฉด์ react๋ผ๋ ํด๋๊ฐ ์๊ธฐ๊ณ ์ด ์์๋ distํด๋๊ฐ ์๊ธด๋ค. ์ด distํด๋์๋ ์ฌ๋ฌ ํจ์๋ค๊ณผ ์์ถ๋ ํ์ผ์ด ์กด์ฌํ๋ค.
package.jsonํ์ผ์ dependencies๊ฐ ์๊ธด๋ค.
npm install ํ package.jsonํ์ผ
{
"name": "npm",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"react": "^17.0.2"
}
}
์ฐ๋ฆฌ๋ ๊ฐ๋ฐํ๋ฉด์ package.jsonํ์ผ์ ์์ฃผ ๋ค๋ฆด ๊ฒ์ด๋ค. ์ด์ ๋ ํ๋ก์ ํธ์ ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ์ ํธํ์ด๋ ์ ๋ฐ์ดํธ์ ๋ฐ๋ฅธ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํด์ค์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ ๋ฆฌํด๋ณด๋ฉด
npm์ ์ด์ฉํ๋ฉด ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ์ข์์ง๋ค. npm์ด ์๋ค๋ฉด ํด๋น ์ฌ์ดํธ์ ๋ค์ด๊ฐ์ cdn์ ๋ณต์ฌํด์ html์ฝ๋์ ๋ฃ์ด์ฃผ์ด์ผํ๋ค. ์์ฒ๊ฐ์ html์ค์์ script๋ถ๋ถ๋ง์ ctrl+F๋ก ์ฐพ๋ ํ์๋ ์ฐธ ๊ท์ฐฎ์ ์ผ์ด๋ค. npm์ package.json๋ง ์ด์ฉํ๋ฉด ์ด๋ด ์ผ์ด ์์ด์ง๋ค.
๋๋ฒ์งธ๋ก๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ์ ์์กด์ฑ์ ์ค์ฌ์ค ์ ์๋ค. ์ฐ๊ด์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค ๊ฐ์ ์ฐ๊ด์ฑ์ด ์๋ค๊ณ ๊ฐ์ ํ ๋ ํ๋๋ ์ ๋ฐ์ดํธ๊ฐ ๋๊ณ ํ๋๋ ์ ๋ฐ์ดํธ๋์ง ์๋๋ค๋ฉด ์ธ์ด๊ฐ์ ์ค๋ฅ๊ฐ ์๊ธธ ์ ์๋ค. package.json์ ๋ฒ์ ์ด ๋ค ๋์์์ผ๋ ์ผ๋ง๋ ํธํ๊ฒ ์กฐ์์ด ๊ฐ๋ฅํ๊ฐ?
๋ง์ง๋ง์ผ๋ก npm install์ ์ง์ญ์ค์น์ ์ ์ญ์ค์น์ ๋ํด ์๊ธฐํ๋ ค๊ณ ํ๋ค.
npm install ์ฌ์ฉ๋ฐฉ๋ฒ
์ง์ญ์ค์น๋ npm install react์ฒ๋ผ ์๋ฌด๋ฐ ์์๋ ๋ถ์ด์ง ์์ ์ค์น๋ฅผ ๋งํ๋ค.
์ ์ญ์ค์น๋ npm install react --global์ฒ๋ผ --global๋๋ --g๋ฅผ ๋ถ์ฌ์ค ์ค์น์ด๋ค.
๊ทธ๋ผ ์ธ์ ์ง์ญ์ค์น๋ฅผ ํ๊ณ ์ธ์ ์ ์ญ์ค์น๋ฅผ ํด์ผํ ๊น?
์ง์ญ์ค์น๋ ๊ฐ๋ฐํ๊ณ ์๋ ํด๋น ํ๋ก์ ํธ์์๋ง ์ฌ์ฉํ ๋ ์ง์ญ์ค์น๋ฅผ ํด์ค๋ค.
์ ์ญ์ค์น๋ ์ ์ฒด์ ์ผ๋ก ์ฌ์ฉํ๊ณ , ๊ฐ๋ฐ์ ํ์ํ ๋ณด์กฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ํ๋จ๋ ๋ ์ ์ญ์ค์น๋ฅผ ํด์ค๋ค.
์ฐธ๊ณ ๋ก ์ง์ญ์ค์น๋ node_modulesํด๋ ์๋์ ์ ๋ถ ์ค์น๊ฐ ๋๊ณ ์ ์ญ์ค์น๋ ์์คํ ์ฐจ์์์์ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ์ ์ค์น๊ฐ ๋๋ค. ์๋์ฐ : c:\Users\%USERNAME%\AppData\Roaming\npm\node_modules
dependencises vs devdependencises
dependencies : ๋ฐฐํฌ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
devdependencies : ๊ฐ๋ฐ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
npm install webpack๋ฅผ ํ๋ฉด dependencies๊ฐ ์๊ธฐ๊ณ npm install webpack --save-dev๋ฅผ ํ๋ฉด devdependencies๊ฐ ์๊ธฐ๋๋ฐ ์ฐจ์ด์ ์ ์ ์๋ npm run build์์ ๊ฐ์ด ๋ก๋๊ฐ ๋๊ณ ํ์๋ ๋ก๋๋์ง์๋๋ค. ์ฆ ๋ธ๋ผ์ฐ์ ๋ฅผ ํฌ๋๋ dependencies๋ง ๋ถํ๊ฐ ์๊ธด๋ค๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ๊ฒ๋ค์ ์ ๊ณ ๋ คํด์ ์ ์ญ์ผ๋ก ์ค์นํ ์ง ์ง์ญ์ผ๋ก ์ค์นํ ์ง ์ ํ๋ฉด ๋๋ค.
์ฌ์ค ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์น์ฌ์ดํธ์ ๋ค์ด๊ฐ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ด์ฉํ๋ ๊ฒ ์ ์ผ ์ข๋ค.