[Nodejs] npm 명령어

Lian Kim·2022년 9월 13일
1

npm(node package manager)은 Node.js 설치 시 함께 설치되는 자바스크립트 패키지 매니저이다.
Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할을 하고, 패키지 설치 및 관리를 위한 CLI(Command Line Interface)를 제공한다.

자주 사용하는 npm 명령어에 대해 알아보자.




npm init

새로운 프로젝트나 패키지를 만들 때 사용한다.
npm init을 실행하면 프로젝트의 루트 디렉토리에 package.json 파일이 생성된다.
package.json 파일을 가진 모든 디렉토리를 npm 프로젝트라고 볼 수 있다.

--yes-y 옵션을 주면 기본 설정값으로 생성된다.

npm init

# package.json 기본 설정값 적용
npm init --yes
npm init -y



npm install <package-name>

패키지를 설치한다. npm i로도 사용이 가능하다.
뒤에 패키지명을 붙이지 않고 npm install만 실행할 경우 package.json의 모든 패키지를 설치한다.
패키지 이름 뒤에 @<version>을 붙여주면 특정 버전으로 설치할 수 있다.

npm install <package-name>
npm i <package-name>
# 패키지 여러 개 한 번에 설치
npm i <package-name> <package-name> <package-name>

# package.json의 모든 패키지 설치
npm install
npm i

지역 설치와 전역 설치

1. 지역(local) 설치 (default)

프로젝트의 루트 디렉토리에 node_modules 디렉토리가 자동 생성되고 그 안에 패키지가 설치된다. 지역 설치된 패키지는 해당 프로젝트 내에서만 사용할 수 있다.

2. 전역(global) 설치

npm install 뒤에 -g 옵션을 붙여주면 패키지가 전역 공간에 설치된다. 전역 설치된 패키지는 모든 프로젝트에서 참조할 수 있다.

전역으로 설치하게 되면 몇 가지 문제들이 발생한다.

  • 모듈의 업데이트 여부를 확인하기 어렵다.
  • 업데이트 시 변동사항이 생기면 해당 패키지를 사용하고 있는 다른 프로젝트에도 영향을 끼칠 수 있다.
  • create-react-app 같이 모듈 변경사항이 자주 생기는 보일러플레이트에는 치명적이다. (매번 최신 버전을 설치해줘야 하기 때문)
# 지역 설치
npm install <package-name>

# 전역 설치
npm install -g <package-name>

npm install 옵션

npm@5부터 --save 옵션을 기본 옵션(default)으로 저장한다.
--save 옵션은 package.json의 dependencies 항목에 모듈을 추가한다는 의미이다.

-P(--save-prod)

프로젝트 배포 시 사용될 의존성 모듈을 정의하고 설치하는 기본 옵션(default).
dependencies에 패키지 등록.

-D(--save-dev)

개발 단계에서만 사용하는 의존성 모듈을 정의하고 설치.
devDependencies에 패키지 등록.

-O(--save-optional)

선택적 의존성 모듈을 정의하고 설치.
optionalDependencies에 패키지 등록.

-E(--save-exact)

패키지의 버전을 version range 형식이 아닌 정확한 버전으로 명시한다.
dependencies에 패키지 등록.

-B(--save-bundle)

번들로 묶을 패키지 의존성 모듈을 정의하고 설치.
bundleDependencies에 패키지 등록.

--no-save

dependencies에 패키지를 등록하지 않는다.




npm uninstall <package-name>

패키지를 삭제한다. npm rm으로도 사용이 가능하다.
node_modules와 package.json의 dependencies에서 모두 제거된다.
전역 설치된 패키지는 설치할 때와 동일하게 -g 옵션을 추가하여 제거하면 된다.

# 로컬/개발용 패키지 제거
npm uninstall <package-name>
npm rm <package-name>

# 전역 패키지 제거
npm uninstall -g <package-name>
npm rm -g <package-name>



npm update <package-name>

패키지를 업데이트한다. 전역 설치된 패키지의 경우 동일하게 -g 옵션을 추가해주면 된다.

# 로컬 패키지 업데이트
npm update <package-name>

# 전역 패키지 업데이트
npm update <package-name> -g



npm search <search-term>

npm 저장소에서 패키지를 검색한다.
패키지의 이름, 설명 또는 키워드를 바탕으로 검색 결과가 나온다.
참고로, 공식 홈페이지에서 검색하는 것이 훨씬 간편하다.

npm search <search-term>

npm 저장소에서 패키지를 검색하는 명령어입니다. 패키지의 이름, 설명 또는 키워드를 바탕으로 검색 결과가 나옵니다.




npm info <package-name>

패키지에 대한 정보를 확인할 수 있다.
npm view와 유사하지만 보다 세부적인 정보를 파악할 수 있다.

npm info <package-name>



npm list

설치된 패키지들의 구조를 보여준다. npm ls로도 사용 가능하다.
현재 설치된 패키지의 버전과 dependencies를 트리 구조로 표현한다.
npm ls <package-name>을 실행하면 해당 패키지와 관련된 구조만 보여준다.
npm ll을 실행하면 더 상세한 정보를 볼 수 있다.

npm list
npm ls

# 특정 패키지 조회
npm list <package-name>
npm ls <package-name>

# 더 상세한 정보 조회
npm ll



npm root

지역 패키지가 설치된 node_modules의 위치를 알려준다.
마찬가지로 옵션 -g를 추가하면 전역 패키지가 설치된 위치를 확인할 수 있다.

# 지역 패키지 설치 폴더 확인
npm root

# 전역 패키지 설치 폴더 확인
npm root -g



npm run <script-name>

package.json의 scripts 프로퍼티에 지정해둔 스크립트를 실행한다.
프로젝트에서 반복적으로 실행해야 하는 스크립트를 package.json 파일의 scripts 프로퍼티에 지정해두면 npm run 명령어를 이용해서 간편하게 실행시킬 수 있다.

npm run <script-name>

스크립트 작성 시 아래와 같이 이름과 명령어를 key: value 형태로 입력한다.

{
  "scripts": {
    "test": "mocha",
  }
}
npm run test

npm start

package.json 파일의 scripts 프로퍼티 중 start를 실행한다.
start가 미리 정의되어 있지 않으면 npm은 node server.js를 실행한다.

{
  "scripts": {
    "start": "node test.js"
  }
}
npm start

> npm@x.x.x start
> node test.js

(test.js output would be here)



npm help

명령어 목록을 보여준다.
npm help <command>를 실행하면 해당 명령어에 대한 설명 및 옵션 정보를 확인할 수 있다.

npm help

# 특정 명령어 정보 확인
npm help <command>





참고 자료
npm Docs CLI Commands, npm-install
PoimaWeb 모듈화와 npm(node package manager)
Zero Cho npm 명령어

0개의 댓글