CH03: Node 패키지 관리
NPM 명령어 기초 가이드
NPM CLI는 Node.js 프로젝트에서 필수적인 도구로, 다양한 명령어를 통해 패키지 관리와 실행을 지원합니다. npm --help 명령어를 사용하면 모든 명령어와 사용법을 확인할 수 있습니다. 주요 명령어에는 install, update, start, test 등이 있으며, 이외에도 자주 사용되지 않지만 유용한 다양한 명령어가 존재합니다.
주요 NPM 명령어 소개
npm install: 프로젝트의 모든 의존성을 설치합니다.
npm install <패키지명>을 통해 특정 패키지를 개별적으로 추가할 수도 있습니다.npm test: 프로젝트 내 테스트 스크립트를 실행합니다.
npm run <script>:
package.json에 정의된 특정 스크립트를 실행합니다.npm <command> -h: 특정 명령어에 대한 빠른 도움말을 표시합니다.
npm -l: 모든 명령어에 대한 간단한 사용법을 확인할 수 있습니다.
자주 사용하는 명령어 정리
npm init: 새 npm 패키지를 초기화하여
package.json파일을 생성합니다.npm search <검색어>: npm 레지스트리에서 패키지를 검색합니다.
npm list: 설치된 패키지와 의존성 트리를 확인합니다.
npm publish: 개발한 패키지를 npm 레지스트리에 배포합니다.
npm link: 로컬 시스템의 패키지를
node_modules와 연결하여 개발 및 테스트를 지원합니다.npm cache clean: npm 캐시를 삭제하여 설치 문제나 오래된 패키지 문제를 해결합니다.
각 명령어에 대한 추가 설명이 필요할 경우 npm <명령어> -h로 확인할 수 있습니다.
Semantic Versioning (SemVer) 사용법
NPM은 SemVer(유의적 버전 표기법)를 사용하여 패키지를 관리합니다. 버전 형식은 MAJOR.MINOR.PATCH로 구성됩니다.
MAJOR: 호환되지 않는 주요 변경이 발생할 때 증가합니다.
MINOR: 새로운 기능이 추가되었으나 호환성에 문제 없을 때 증가합니다.
PATCH: 버그 수정이나 보안 패치가 이루어졌을 때 증가합니다.
버전 제약 기호
package.json 파일 내 버전 문자열은 특정 범위의 버전을 지정할 수 있습니다.
^: 최신 부 버전까지 허용 (^4.17.21은 4.x 버전까지 허용)~: 최신 수정 버전까지만 허용 (~4.17.0은 4.17.x 버전까지 허용)*: 가능한 최신 버전 설치x: 특정 주 또는 부 버전 내 최신 버전 허용 (4.x는4.x.x모든 버전 허용)
패키지 관리 명령어
npm update:
package.json의 버전 제약 범위 내에서 패키지를 최신 버전으로 업데이트합니다.npm outdated: 업데이트 가능한 패키지를 표시합니다.
npm prune: 더 이상 필요하지 않은 패키지를 삭제하여 디스크 공간을 절약합니다.
패키지 잠금 파일 관리
package-lock.json 파일은 프로젝트의 모든 의존성을 포함한 고정된 버전을 기록하여 일관성을 유지합니다. 팀 프로젝트에서는 이 파일을 통해 모든 개발자가 동일한 패키지 버전을 사용할 수 있도록 합니다. 이 파일은 Git에 포함하여 프로젝트 버전 일관성을 유지하는 데 활용됩니다.
예제: NPM 패키지 생성 및 배포
아래는 print-in-frame이라는 간단한 npm 패키지를 만들어 배포하는 과정을 설명합니다. 이 패키지는 텍스트를 별(*)로 감싸서 출력하는 기능을 포함합니다.
프로젝트 폴더 생성
package.json파일 생성npm init명령어로 패키지를 초기화하고"type": "module"을 추가하여 ES 모듈을 지정합니다.index.js파일 작성printInFrame함수를 정의하고lodash.times모듈을 사용하려면npm install lodash.times로 설치합니다.테스트 파일 작성
index.test.js파일에서printInFrame함수를 테스트합니다.테스트는
node --test명령어로 실행합니다.로컬 프로젝트에 패키지 설치
패키지 배포 npm 계정에 로그인한 후,
npm publish명령어로 패키지를 배포할 수 있습니다.
NPM 실행 스크립트와 NPX 사용법
package.json의 scripts 섹션에 자주 사용하는 작업을 정의하여 자동화할 수 있습니다.
npm run <script>를 통해 실행할 수 있으며, npm run test는 npm test로 줄여서 사용할 수 있습니다.
npx는 프로젝트에 설치된 CLI 도구를 임시로 실행하거나 설치하여 사용할 수 있습니다. 예를 들어, npx eslint --help는 설치 여부와 관계없이 eslint를 실행합니다.
템플릿 기반 프로젝트 생성
: npx는 템플릿을 기반으로 새로운 프로젝트를 생성하는 데 자주 사용됩니다.
NPM과 NPX를 활용하면 프로젝트 관리와 자동화가 수월해지며, 특히 협업 프로젝트에서 일관된 패키지 관리에 큰 도움을 줍니다.
Last updated