node.js
NPM ๋ชจ๋ ๊ฐ๋ฐ
by NOMADFISH
2023. 10. 11.
NPM์ ๊ฐ๋ฐ ์์ 1
- Node.js๊ฐ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค.
- ๊ฐ๋ฐ์ ์ํ IDE๊ฐ ์์ด์ผ ํฉ๋๋ค.
- vscode๋ก ์งํ ํฉ๋๋ค.
- ๊ธฐ๋ณธ์ ์ธ Javascript ๋ฌธ๋ฒ์ ์์งํ๊ณ ์์ด์ผ ํฉ๋๋ค. Typescipt๋ ๊ด์ฐฎ์ต๋๋ค.
- ์ผ๋จ ํ๋ก์ ํธ ํด๋๋ฅผ ํ๋ ๋ง๋ค์ด vscode์ ํ๋ก์ ํธ ํด๋๋ฅผ ๋ก๋ ํฉ๋๋ค
- ์ฌ๊ธฐ์์๋ npmadd ๋ผ๋ ์ด๋ฆ์ผ๋ก ์์ฑ ํ์์ต๋๋ค.
- vscode์์ ํฐ๋ฏธ๋์ ํ๋ ์ด์ด ์ค๋๋ค.
- ๊ธฐ๋ณธ npm ๊ฐ๋ฐ ์ค๋น๊ฐ ๋์ด ๋ฌ์ต๋๋ค.
NPM์ ๊ฐ๋ฐ ์์
- ๊ฐ์ฅ ๋จผ์ ํ์ํ ๊ฒ์ package.json์ ์์ฑ ํด์ผ ํฉ๋๋ค.
- ์ง์ ํ์ผ์ ๋ง๋ค๊ณ ๋ด์ฉ์ ์ฑ์๋ ๋๋ฉฐ, npm init command๋ฅผ ์ด์ฉํ์ฌ ์์ฑํด๋ ๊ด์ฐฎ์ต๋๋ค.
- ์ฌ๊ธฐ์์๋ npm init์ผ๋ก ์์ฑ ํฉ๋๋ค. vscode terminal์์ npm init command์ ์
๋ ฅ ํฉ๋๋ค.
npm init
- npm init command๋ฅผ ์
๋ ฅํ๋ฉด, package name, ํจํค์ง ์ด๋ฆ์ ์ค์ ํด์ผ ํฉ๋๋ค. ๊ดํธ๋ด๋ถ์๋ ํ์ฌ ํด๋ ์ด๋ฆ์ ๋ํดํธ๋ก ๋ณด์ฌ์ฃผ๊ฒ ๋๋ฉฐ, ๊ดํธ ๋ด๋ถ ๊ฐ์ด ๋ํดํธ ๊ฐ์
๋๋ค. ์๋ฌด ์
๋ ฅํ์ง ์๊ณ ์ํฐ๋ฅผ ๋๋ฌ ๋์ด๊ฐ๋ฉด ๊ธฐ๋ณธ์ผ๋ก npmadd๋ก ์ค์ ๋ฉ๋๋ค.
- ์ด๋ฆ ์ค์ ํ ๋ง๋ค npm ๋ชจ๋์ ๋ฒ์ ์ ์ค์ ํ๊ฒ ๋ฉ๋๋ค. ๋ํดํธ๋ก 1.0.0์ด ๋์ค๊ฒ ๋ฉ๋๋ค.
- ๋ค์์ผ๋ก ์ด ํจํค์ง๋ํ ์ค๋ช
์ ์์ฑํ๊ฒ ๋ฉ๋๋ค. ๋ํดํธ ๊ฐ์ ์๊ณ ๊ทธ๋ฅ ๋๊ฒจ๋ ๋ฌธ์ ์์ต๋๋ค.
- ๋ค์์ผ๋ก entrypoint๋ฅผ ์ค์ ํ๊ฒ ๋ฉ๋๋ค. entrypoint๋ ํจํค์ง ์คํ์ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ ํน์ import๋๋ js ํ์ผ์
๋๋ค.
- ๋ํดํธ๋ index.js ์
๋๋ค.
- ๋ค์์ test command๋ฅผ ์ค์ ํฉ๋๋ค. test command๋ ํ์ฌ ํจํค์ง ์คํ์ด ์ ์์ ์ธ์ง ํ
์คํธ ํ ์ ์๋ command(ํน์ script)์ ์
๋ ฅํฉ๋๋ค. ํ์ ํญ๋ชฉ์ ์๋๋๋ค.
- ๊ทธ ๋ค์์ผ ์ด ์ฝ๋์ git repo ์ฃผ์๋ฅผ ์ค์ ํฉ๋๋ค. ํ์ ํญ๋ชฉ์ ์๋๋๋ค.
- ๊ทธ๋ค์ ์ด ํจํค์ง๋ฅผ ์ค๋ช
ํ๊ธฐ ์ํ ํค์๋๋ฅผ ์ค์ ํฉ๋๋ค. ์ด ํค์๋๋ ์ผ์ข
์ hash tag ๊ฐ์ ์ญํ ์ ํ๊ฒ ๋ฉ๋๋ค. npm.js ์ฌ์ดํธ๋ฑ์์ ๊ฒ์ ์ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ ๊ฐ์ด ์๋๋๋ค.
- ํจํค์ง์ ์์ฑ์๋ฅผ ์ค์ ํฉ๋๋ค. ์ญ์ ํ์ ๊ฐ์ ์๋๋๋ค.
- ์ด ํจํค์ง์ ๋ผ์ด์ ์ค๋ฅผ ์ค์ ํฉ๋๋ค. ISC๊ฐ ๋ํดํธ ์
๋๋ค. ์ํํธ์จ์ด ๋ผ์ด์ ์ค์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ์กฐ ํ์ธ์
- ISC License
- ๋ง์ง๋ง์ผ๋ก ๋ด์ฉ์ ํ์ธํ ํ ์ ์ฒด ๋ด์ฉ์ด ๋ง๋์ง ํ์ธํฉ๋๋ค.
- ๋ง๋ ๋ค๋ฉด yes ํน์ ๊ทธ๋ฅ ์ํฐ๋ฅผ ์น๋ฉด package.json์ด ์์ฑ ๋ฉ๋๋ค.
{
"name": "npmadd",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
- ์์ฑ๋ package.json ์
๋๋ค.
NPM ๊ฐ๋ฐ ์์2
- ์ด์ ์ฝ๋๋ฅผ ๊ฐ๋ฐ ํฉ๋๋ค.
- ์ package.json์์ main์ index.js๋ก ์ค์ ํ์์ผ๋, index.js ํ์ผ์ ์์ฑ ํฉ๋๋ค.
- require ํน์ import์ ๋ํดํธ๋ก ํฌํจ๋๋ ํ์ผ์ด๋ค.
- ์ฆ const npmadd = require(โnpmaddโ)์ ๊ฐ์ด ๋ชจ๋์ ํฌํจํ๋ฉด index.jsํ์ผ์ด import๋ฉ๋๋ค.
- ์ฌ๊ธฐ์๋ ๋จ์ํ 2๊ฐ์ ์๋ฅผ ๋ํ๋ ๋ชจ๋์ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
exports.addNumber = (a, b) => {
return a + b;
}
- exports ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ, ๋ชจ๋ ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์๊ฒ ํ์์ต๋๋ค.
- ์ด์ ์ด ์ํ๋ก npm์ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค.
- npm์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค. code๊ฐ ๋ชจ๋ ์๋ ํ๋ก์ ํธ ํด๋์์ npm pack์ด๋ผ๋ command๋ง ์น๋ฉด ์์ฑ๋ฉ๋๋ค.
- npmadd-1.0.0.tgz๊ฐ ์์ฑ๋๋ ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค.
- ์ค์ ๋ก npm install {pacakge name}์ผ๋ก ์ค์นํ ๋์๋, {package name}-{version}.tgz ํ์ผ์ ๋ค์ด๋ฐ์ ์์ถ์ ํ๊ณ node_module์ copyํ๋ ๋ฐฉ์ ์
๋๋ค.
Local NPM ์ฌ์ฉ
- ๋จผ์ nodejs ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ ํด๋ ํ๋๋ฅผ ์์ฑํํ vscode์์ ํด๋๋ฅผ ์ด์ด ์ค๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์์์ ์ ์ํ tgz ํ์ผ์ ํ๋ก์ ํธ ํด๋์ ์นดํผํ์ฌ ์์น ์ํต๋๋ค.

- ํฐ๋ฏธ๋์ ์ด๊ณ โnpm install ./npmadd-1.0.0.tgzโ command๋ฅผ ์
๋ ฅํฉ๋๋ค.
- node_modules์ package.json์ด ์์ฑ๋๊ณ , ์ค์น๋๋ ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค.
- main.js์ ์๋์ ๊ฐ์ด ์ฝ๋ฉํฉ๋๋ค.
const npmadd = require('npmadd')
console.log(npmadd.addNumber(1,2))
- ์๋์ ๊ฐ์ด ์คํ ์ํค๋ฉด ๋์์ ํ์ธ ํ ์ ์์ต๋๋ค.
node main.js
- ์ด์ ๊ธฐ๋ณธ์ ์ธ npm ๊ฐ๋ฐ์ด ๊ฐ๋ฅ ํ๊ฒ ๋์์ต๋๋ค.
- ๋ค์์ npmjs์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ์ฌ ์์๋ณด๊ฒ ์ต๋๋ค.
'node.js' ์นดํ
๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ