๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Back-end/Node.js

Node.js npm๊ณผ package.json

by ciocio 2021. 8. 5.

๐Ÿ“Œ  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๋ณด๊ณ  ํ•„์š”ํ•œ ๊ฒƒ๋“ค๋งŒ ์™์™ ๊ณจ๋ผ์„œ ์„ค์น˜ํ•˜๋ฉด ๋œ๋‹ค !

 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€