패키지(Package)는 소프트웨어를 일컫는 여러 가지 표현 중 하나라고 생각하면 된다. 독립적으로 실행되는 프로그램도 패키지라고 할 수 있고, 어떤 프로그램 안에서 부품으로 사용되는 작은 프로그램도 패키지라고 할 수 있다.
패키지 매니저(Package Manager)는 이러한 패키지를 설치, 업데이트, 삭제한는 등 관리하는 데 도움을 주는 프로그램이라고 할 수 있다.
NodeJS에서 가장 대중적인 패키지 매니저 중 하나는 npm(Node Package Manager)이다.
npm은 이름 그대로 NodeJS로 만들어진 모듈을 웹에서 받아 설치하고 관리해주는 프로그램이다.
$> npm -v
$> npm --version
npm 에서 사용되고 있는 명령어들과 설명을 볼 수 있다.
$> npm -h
$> npm help
$> npm help npm
npm 에서 사용되는 특정 명령어의 도움말을 볼 수 있다.
$> npm <command-name> -h
$> npm help <command-name>
package.json
npm을 사용하기 위해, 프로젝트의 의존성 관리를 위해, npm 생태계로의 배포를 위한 파일
$> npm init
# 기본 설정
$> npm init -y
패키지를 설치하고 프로젝트의 package.json
파일의 dependencies
목록에 추가한다.
$> npm install <package-name>
$> npm install -P <package-name>
$> npm install --save-prod <package-name>
패키지를 설치하고 프로젝트의 package.json
파일의 devdependencies
목록에 추가한다.
$> npm install -D <package-name>
$> npm install --save-dev <package-name>
dependencies
vsdevdependencies
dependencies
: 실제 코드에도 포함되며, 앱 구동을 위한 필요한 의존성 패키지들. 즉, 프로덕션 환경에서 응용 프로그램에 필요한 패키지devdependencies
: 실제 코드에 포함되지 않으며, 개발 단계에서만 필요한 의존성 패키지들. 즉, 로컬 개발 및 테스트에만 필요한 패키지
프로젝트 폴더가 아닌 시스템 폴더에 패키지를 설치한다.
이 경우 package.json
파일의 의존성 목록(dependencies
목록)에 기록되지 않는다.
$> npm install -g <package-name>
전역 설치로 설치된 패키지가 위치하는 시스템 폴더의 경우 아래 명령어를 통해 확인할 수 있다.
$> npm root -g
package.json
파일 내 dependencies
와 devdependencies
목록에 기록된 모든 패키지를 설치한다.
$> npm i
$> npm install
package.json
파일 내 devdependencies
목록에 기록된 패키지를 제외한 의존성 패키지들만 설치한다.
$> npm install -production
설치하려는 패키지의 최신 버전이 아닌 특정 버전을 설치하고 싶을 경우 다음 명령어 형식을 사용한다.
$> npm install <package-name>@<version>
특정 패키지의 정보를 확인할 수 있다.
$> npm view <package-name>
특정 패키지와 함께 설치해야 하는 다른 패키지 목록을 아래 명령어를 통해 알 수 있다.
$> npm view <package-name> peerDependencies
로컬 또는 개발 패키지를 제거한다.
$> npm uninstall <package-name>
-g
옵션으로 설치된 전역 패키지를 제거한다.
$> npm uninstall -g <package-name>
특정 패키지 업데이트
$> npm update <package-name>
전역으로 설치된 패키지가 설치된 폴더(시스템 폴터) 위치를 확인한다.
$> npm root -g
로컬/개발로 설치된 패키지 목록을 확인한다.
$> npm ls --depth=0
설치된 패키지가 많아 한 화면에 들어오지 않는다면 depth
파라미터로 조절할 수 있다.
전역으로 설치된 패키지의 목록을 확인한다.
$> npm ls -g --depth=0
설치된 패키지가 많아 한 화면에 들어오지 않는다면 depth
파라미터로 조절할 수 있다.
package.json scripts 프로퍼티의 start script를 실행한다.
$> npm start
package.json scripts 프로퍼티의 start 이외의 script를 실행한다.
$> npm run <script-name>
https://docs.npmjs.com/#cli
https://c17an.netlify.app/blog/node.js/npm-install-%EC%A0%95%EB%A6%AC/article/
https://c17an.netlify.app/blog/node.js/npm-install-%EC%A0%95%EB%A6%AC/article/
https://uiandwe.tistory.com/930