package.json
npm (Node Package Manager)
자바스크립트 프로그래밍 언어를 위한 패키지 관리자. Node.js 를 설치할 때 자동으로 npm이 함께 설치된다.
유명한 플랫폼(프로그래밍 언어, 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 |
---|