본문 바로가기
ETC

[Node.js] npm이란? npm 사용법

by mhl22 2021. 11. 8.

package.json

npm (Node Package Manager)

자바스크립트 프로그래밍 언어를 위한 패키지 관리자. Node.js 를 설치할 때 자동으로 npm이 함께 설치된다.

 

https://docs.npmjs.com/files/package.json/

 

docs.npmjs.com

유명한 플랫폼(프로그래밍 언어, OS 등) 은 저마다의 패키지 매니저를 가지고 있다.
- Python : pip
- Java : Maven, Gradle
- PHP : Composer
- Ruby : RubyGems
- RedHat : rpm, yum
- debian : dpkg, apt
- Mac OS : homebrew

 

npm 사용법

cli 설명
npm -version npm 버전 확인
npm init Node.js 프로젝트를 실행할 때 package.json 을 생성해주는 명령
* package.json : 프로젝트의 정보와 프로젝트가 의존하고 있는 패키지에 대한 정보가 저장되어 있는 파일
npm install 패키지명 필요한 패키지 설치하는 명령
* 옵션
-g : 패키지가 해당 프로젝트(local)가 아닌 시스템 레벨에 전역(global) 설치되어 다른 Node.js 프로젝트에서도 사용가능
--save-dev (-D) : package.json의 "devDependencies" 객체에 추가된다.
* 사용 요령
만약 패키지명을 입력하지 않을 시 package.json의 "dependencies"객체에 명시되어 있는 패키지(모듈)들을 모두 설치하게 된다.
따라서 프로젝트의 형상관리를 위해 GitHub와 같은 저장소에 업로드할 때 package.json 만 업로드해놓으면 나중에 프로젝트를 내려받았을 때 npm i 명령어를 통해 기존 프로젝트에서 사용하던 패키지를 손쉽게 원상복귀 시킬 수 있다.
(.gitignore 파일에 node_modules 를 추가하여 패키지가 commit 되지 않게 설정 필요)
npm uninstall 패키지명 패키지 삭제하는 명령
설치된 패키지가 node_modules 폴더 뿐 아니라 package.json 의 "devDependencies" 객체에서도 삭제
npm update 패키지명 설치된 패키지를 최신버전으로 업데이트
npm cache clean
+ npm rebuild
npm의 cache를 지우는 명령 + npm를 새롭게 재설치하는 명령
주로 npm 명령어가 안먹힌다거나, 기타 잡다한 버그가 생겼을 때 해결하기 위해 사용

 

npm 셋팅, package.json 설명

npm 을 셋팅하기 전 node.js 파일의 실행은 "node index.js" 방식으로 실행이 가능하나, npm 셋팅 후에는 "npm start", "npm test" 등의 명령으로 내가 셋팅한 node 명령어를 간단히 실행할 수 있다.

mkdir playground
cd playground
npm init

package.json 생성을 위한 몇가지 질문에 답한다.

  • name : 프로젝트 이름
  • version : 프로젝트 버전
  • description : 프로젝트에 대한 설명
  • entry point : package.json 에 main 에 들어갈 js 파일을 지정함과 동시에, 지정된 js 파일에서 export 되는 객체들을 다른 사용자가 사용할 수 있게 지정하는 영역
  • test command : package.json 의 script 에 들어갈 node command 를 입력
  • git repository : 해당 프로젝트와 연관된 Git 저장소를 설정. 이 설정을 하고나서 현재 프로젝트 폴더 경로에서 "npm docs" 를 입력하면 package.json 의 Homepage 에 있는 주소로 자신이 설정한 기본 웹브라우저에 이동된다.
  • keywords : 내 라이브러리가 오픈소스로 온라인에 올라갔을 떄 검색되는 단어를 설정. 만약 이 라이브러리를 오픈소스로 등록하면 npm search test 입력했을 때 리스트에 내 라이브러리가 검색될 것
  • author : 작성자
  • license :  기본값은 ISC 

생성된 package.json은 다음과 같다.

{
  "name": "playground",
  "version": "1.0.0",
  "description": "test",
  "main": "index.js",
  "scripts": {
    "test": "node index.js"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/mhlee21/playground.git"
  },
  "keywords": [
    "nodejs",
    "test"
  ],
  "author": "mhlee",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/mhlee21/playground/issues"
  },
  "homepage": "https://github.com/mhlee21/playground#readme"
}

 

 

'ETC' 카테고리의 다른 글

티스토리 단축키 For MAC  (0) 2021.08.16