npm

ClassBinu·2024년 4월 4일

Node.js 교과서

목록 보기
10/19

npm

Node Package Manager

패키지: npm에 업로드된 노드 모듈

package.json

설치한 패키지의 버전 관리하는 파일

npm init

npm run

package.json에 정의된 사용자 지정 스크립트를 실행하는 명령어
start, test는 예외적으로 run 없어도 동작함.

npm install

--save 옵션은 dependencies에 패키지 이름을 추가하는 옵션
npm@5부터 기본값이므로 안 써도 됨.

이와 대조적으로, 개발 과정에서만 필요하고 프로덕션 환경에서는 필요 없는 패키지들은 devDependencies에 추가됩니다. 이는 npm install <패키지명> --save-dev(또는 -D) 명령을 통해 수행할 수 있습니다. devDependencies에 등록된 패키지는 개발 중에는 필요하지만, 실제 운영 환경에서는 사용되지 않는 도구들(예: 테스트 프레임워크, 빌드 도구 등)을 위한 곳입니다.

package-lock.json

package.json은 내가 설치한 패키지에 대한 정보.
즉, 이건 내가 직접 설치한 패키지를 기록하는 파일
직접 의존성만 관리

pacakge-lock.json은 그 설치한 패키지의 의존 관계에 대한 세부 정보
즉, 이건 내가 직접 설피한 패키지로부터 파생된 모든 설치된 패키지의 의존 관계를 명시한 파일
직접 의존성 및 간접 의존성까지 관리

npm에 등록되지 않아도 npm install [저장소 주소]로 설치 가능

패키지 버전의 이해

SemVer Semantic Versioning(유의적 버전)

메이저버전.마이너버전.패치 형태

기호

  • ^: 마이너 버전까지만 설치 및 업데이트
    npm i express@^ 1.1.1 // 1.1.1 이상 2.0.0 미만
  • ~: 패치 버전까지만 설치 및 업데이트
    npm i express@~1.1.1 // 1.1.1 이상 1.2.0 미만
  • 그 외 부등호는 수식 그대로 의미
  • latest, x: 안정된 최신 버전
npm i express@latest
npm i express@x
  • next: 가장 최근 배포판

기타 명령어

  • npm outdated: 업데이트 할 수 있는 패키지 확인
  • npm uninstall 패키지명 or npm rm 패키지명
  • npm search 검색어: CLI 환경에서 패키지 검색 가능
  • npm info 패키지명: 패키지 세부 정보(package.json의 내용 등)

배포 시 명령어

  • npm login: 패키지 배포할 때 필요
  • npm whoami
  • npm logout
  • npm version 버전: package.json 버전 올림
    - npm version major
    • npm version minor
    • npm version patch
  • npm deprecate 패키지명 버전 메시지: 해당 패키시 설치할 때 경고 메시지
  • npm publish: 패키지 배포
  • npm unpublish: 배포한 패키지 제거. 24시간 이내에만 제거 가능.
  • npm owner ls 패키지명: 제작자 정보 확인
  • npm info 패키지명: 패키지 정보, 패키지명 중복 있는지 체크할 때도 사용

0개의 댓글