part4
제로초의 Node.js 교과서 섹션 4 요약
5.1 npm 알아보기
npm은 Node Package Manager로, node 기반의 프로젝트, 특히 로컬 환경에서 프론트엔드 개발환경을 구축해본 경험이 있다면 너무나도 친숙한 존재이다. npm을 통해 프로젝트에 적합한 라이브러리를 찾아 설치하고, 업데이트하거나 삭제할 수 있었다.
현재까지도 npm은 yarn, pnpm 등 다른 노드 패키지 매니저에 비해 가장 높은 점유율을 갖고 있으며, 탄탄한 유저층을 기반으로 커뮤니티 또한 가장 크게 활성화되어있다.
npm을 활용하기 위해서는 package.json
이라는 파일에 대해 알아야한다.
5.2 package.json으로 패키지 관리하기
package.json은 노드 패키지(노드는 모듈을 라이브러리 관점에서 패키지라고 부르기도 한다)에 관한 필수적인 정보들을 종 합한 JSON 형식의 파일이다.
{
"name": "test_project",
"version": "1.0.0",
"description": "",
"main": "index.js"
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "sscoderati",
"license": "MIT"
}
보통 npm init
커맨드를 통해 node 프로젝트를 시작하게되면 CLI에서 채우라는거 다 채웠을 때 위와 같은 정보들을 가진 package.json
이 생성된다.
- name: 프로젝트 이름
- version: 프로젝트 버전
- description: 프로젝트 설명
- main: 프로젝트 실행 스크립트 파일명
- scripts: 프로젝트에 관한 커맨드 정의. 별칭과 실제 터미널에 입력할 커맨드셋을 등록한다. ex)
"dev": "parcel ./index.html"
로 등록하면npm run dev
커맨드를 통해"parcel ./index.html"
커맨드를 실행할 수 있다. - author: 프로젝트 작성자명
- license: 프로젝트 라이센스 범위 설정
이렇게 package.json
이 생성되면 라이브러리 설치를 위한 명령어도 사용할 수 있게 된다.
npm install [library_name]
: 일반 의존성 패키지 설치 (프로덕션용 의존성)npm i [library_name]
으로 줄여서 쓸 수도 있다.
npm install --save-dev [library_name]
: 개발 의존성 패키지 설치 (개발환경용 의존성)npm i -D [library_name]
으로 줄여서 쓸 수도 있다.
npm uninstall [library_name]
: 라이브러리 제거
라이브러리를 설치하면 아래 예시와 같이package.json
에 설치한 라이브러리에 관한 정보들이 등록된다.
// ...
"dependencies": {
"next": "^13.0.6",
"nextra": "latest",
"nextra-theme-docs": "latest",
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@types/node": "18.11.10",
"@types/react": "18.2.14",
"typescript": "^4.9.3"
}
// ...