๐ npm์ด๋??
Node Package Manager ์ฝ์
node.js ํ๊ฒฝ์์ ํ์ํ ๋ชจ๋์ ๋ค์ด๋ฐ๊ธฐ ์ํ "๋ชจ๋ ์คํ ์ด" ์ด๋ค.
( ex. ๋ฆฌ๋ ์ค์ PM์ apt, MacOS์ PM์ brew, Node.js์ PM์ npm )
๋ค๋ฅธ๋ถ๋ค์ด ๋ง๋ค์ด๋์ ์ข์ ๋ชจ๋๋ค์ node.js์์๋ "nmp๋ชจ๋" ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋ชจ๋๋ค์ ์ด๋ป๊ฒ ํจ์จ์ ์ด๊ณ ์์ฐ์ ์ผ๋ก ์กฐ๋ฆฝํ ๊ฑด์ง ์ง์์ ์ผ๋ก ๊ณ ๋ฏผํด์ผํ๋ค.
๐ npm ์ค์นํ์ ๋ ์ฅ์
ํ๋ก์ ํธ ์ฝ๋๋ฅผ ๋ค๋ฅธ ์ฌ๋์๊ฒ ์ ๋ฌํ ๋, ํ๋ก์ ํธ๊ฐ ํฌํจํ๊ณ ์๋ ๋ชจ๋ ๋ชจ๋์ ๋ค ์ ๋ฌํ์ง ์์๋ ๋๋ค !
--> "์ฐ๋ฆฌ ์ฝ๋๋ ์ฌ๊ธฐ์๊ณ , ํ์ํ ๋ชจ๋๋ค์ package.json์ ์๋ ๋ฆฌ์คํธ ๋ณด๊ณ ๋ค๊ฐ ์ง์ ๋ค์ด๋ฐ์์ ์จ ~"
โพ npm ์ค์นํ๊ธฐ
npm install
โพ ํด๋น ํ์ผ์์ node_modules ๋๋ ํ ๋ฆฌ๊ฐ ์๊ธด ๊ฑธ ํ์ธํ๋ค๋ฉด ์ฑ๊ณต ! *^&&^*
์์ผ๋ก ๋ค์ด๋ฐ๋ npm๋ชจ๋๋ค์ node_modules ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋ ๊ฑฐ๋ค :)
๐ package.json์??
ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ์ํด ํ์ํ ์ ๋ณด๋ค์ด ๋ชจ๋ ๋ด๊ฒจ์๋ค. --> ๋ง์น ํ๋ผ๋ชจ๋ธ ์กฐ๋ฆฝ์ค๋ช ์๋๊น
๋ค๋ฅธ์ฌ๋์๊ฒ ์ด ํ๋ก์ ํธ๋ฅผ ์๊ฐํ๊ฑฐ๋ ๋ฐฐํฌํ๊ธฐ ์ํด ๊ฐ๋ต์ ์ธ ์ ๋ณด๋ฅผ ๋ด์ sheet๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ๊ฒ ๋ค.
( ex. ํ๋ก๊ทธ๋จ ์คํ์ ํ์ํ ๋ชจ๋๋ค list, ํ๋ก๊ทธ๋จ ์๋ ๋ฐฉ๋ฒ, ํ๋ก๊ทธ๋จ ํ ์คํธํ๋ ๋ฐฉ๋ฒ ... )
๐ ํ๋ก์ ํธ์ ๊ดํ ์ ๋ณด๋ค
ํ๋ก์ ํธ์ ์ ๋ฐ์ ์ธ ๋ด์ฉ์ ๊ธฐ์ ํ ๋ถ๋ถ
๐ CLI์์ ์ฌ์ฉ๊ฐ๋ฅํ ๋ช ๋ น๋ค
"scripts" ๋ผ๊ณ ๋ช ์๋ ๋ถ๋ถ์ด๋ค. npm ์ค์น ํ CLI์์ ์ฌ์ฉ๊ฐ๋ฅํ ๋ช ๋ น์ ๊ธฐ์ ํด๋์๋ค.
์ฃผ๋ก ์คํ ( start ), ํ ์คํธ ( test ), ์ฝ๋ ๊ฒ์ฌ ( lint ) ๋ฑ์ ๊ธฐ์ ํ๋ค.
// npm script ์ฌ์ฉํ๊ธฐ
npm run [์คํฌ๋ฆฝํธ ์ด๋ฆ]
๐ ๊ฐ๋ฐ๊ณผ ๊ด๋ จ๋ dependency๋ค ( dependencies / devDependencies )
ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ด๋ ์คํ์ ํด๋น ๋ชจ๋๋ค์ "์์กด"ํ๋ค๊ณ ํด์ dependency ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
โพ dependencies
ํ๋ก๊ทธ๋จ ์คํ๊ณผ ์ง์ ์ ์ธ ๊ด๊ณ๊ฐ ์๋ ๋ชจ๋๋ค
( ex. underscore, React )
// npm ์ค์น ์ ๋ค์ ์ต์
์ ์ถ๊ฐํ๋ฉด, ์๋์ผ๋ก dependencies์ ์ถ๊ฐ๋จ
npm install react
// ๋๋
npm install --save react
// react๋ ๋ญ์ผ ?
// react๋ ์ฑ๊ณผ ์ดํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๊ธฐ ์ํ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
// ํ์ด์ค๋ถ์ด ๊ด๋ฆฌํ๊ณ ์๋ ํ๋ ์์ํฌ๋ก์, ์ ๋ขฐ์ฑ์ด ๋ณด์ฅ๋๋ค.
// ์ด ๋ํ npm๋ด์์ ๊ด๋ฆฌํ ์ ์๋ค๋ ๋๋๋ค
โพ devDependencies
ํ๋ก๊ทธ๋จ ์คํ๊ณผ ๊ด๊ณ์๋, ์ค๋ก์ง ๊ฐ๋ฐ์ ์ํด ํ์ํ ๋ชจ๋๋ค
( ex. ์ฝ๋ ๋ชจ์์ ์ก์์ฃผ๋ lint, ํ ์คํ ๋ชจ๋ ๋ฑ )
// npm ์ค์น ์ ๋ค์ ์ต์
์ ์ถ๊ฐํ๋ฉด, ์๋์ผ๋ก devDependencies์ ์ถ๊ฐ๋จ
npm install mocha --save-dev
// mocha๋ ๋ญ์ผ ?
// node์์ ์๋ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ
์คํธ ํ๋ ์์ํฌ์ด๋ค.
// js and in the browser, making asynchronous testing simple and fun.
// Mocha tests run serially, allowing for flexible and accurate reporting,
// while mapping uncaught exceptions to the correct test cases.
๐ ์ฆ, npm๋ชจ๋ ์ค์นํ ๋ package.json๋ณด๊ณ ํ์ํ ๊ฒ๋ค๋ง ์์ ๊ณจ๋ผ์ ์ค์นํ๋ฉด ๋๋ค !
'Back-end > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CommonJS ์ ES(6) ๋ชจ๋ ํค์๋ ( require vs import ) ์ฐจ์ด (0) | 2021.11.14 |
---|---|
Node.js ๋ ๋ญ์ผ? ์ผ๋จ ์ค์นํด๋ด (0) | 2021.08.04 |
๋๊ธ