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.x4.x.x 모든 버전 허용)

패키지 관리 명령어

  • npm update: package.json의 버전 제약 범위 내에서 패키지를 최신 버전으로 업데이트합니다.

  • npm outdated: 업데이트 가능한 패키지를 표시합니다.

  • npm prune: 더 이상 필요하지 않은 패키지를 삭제하여 디스크 공간을 절약합니다.

패키지 잠금 파일 관리

package-lock.json 파일은 프로젝트의 모든 의존성을 포함한 고정된 버전을 기록하여 일관성을 유지합니다. 팀 프로젝트에서는 이 파일을 통해 모든 개발자가 동일한 패키지 버전을 사용할 수 있도록 합니다. 이 파일은 Git에 포함하여 프로젝트 버전 일관성을 유지하는 데 활용됩니다.

예제: NPM 패키지 생성 및 배포

아래는 print-in-frame이라는 간단한 npm 패키지를 만들어 배포하는 과정을 설명합니다. 이 패키지는 텍스트를 별(*)로 감싸서 출력하는 기능을 포함합니다.

  1. 프로젝트 폴더 생성

  2. package.json 파일 생성 npm init 명령어로 패키지를 초기화하고 "type": "module"을 추가하여 ES 모듈을 지정합니다.

  3. index.js 파일 작성 printInFrame 함수를 정의하고 lodash.times 모듈을 사용하려면 npm install lodash.times로 설치합니다.

  4. 테스트 파일 작성 index.test.js 파일에서 printInFrame 함수를 테스트합니다.

    테스트는 node --test 명령어로 실행합니다.

  5. 로컬 프로젝트에 패키지 설치

  6. 패키지 배포 npm 계정에 로그인한 후, npm publish 명령어로 패키지를 배포할 수 있습니다.

NPM 실행 스크립트와 NPX 사용법

package.jsonscripts 섹션에 자주 사용하는 작업을 정의하여 자동화할 수 있습니다.

npm run <script>를 통해 실행할 수 있으며, npm run testnpm test로 줄여서 사용할 수 있습니다.

npx는 프로젝트에 설치된 CLI 도구를 임시로 실행하거나 설치하여 사용할 수 있습니다. 예를 들어, npx eslint --help는 설치 여부와 관계없이 eslint를 실행합니다.

  • 템플릿 기반 프로젝트 생성

    : npx는 템플릿을 기반으로 새로운 프로젝트를 생성하는 데 자주 사용됩니다.

NPM과 NPX를 활용하면 프로젝트 관리와 자동화가 수월해지며, 특히 협업 프로젝트에서 일관된 패키지 관리에 큰 도움을 줍니다.

Last updated