Hello, Android!
npm pakage.json 본문
npm은 node package manager의 약자로 노드 패키지 매니저 이다
노드는 자바스크립트 프로그램을 컴퓨터에서 실행 가능하게 해주며
대부분의 자바스크립트 프로그램은 패키지로써 npm에 등록되어 있어
필요하다면 해당 기능의 패키지를 npm에서 찾아서 설치해야한다
- pckage.json
package.json은 패키지 마다 버전이 다르고, 각각의 버전마다 기능이 다를 수 있기때문에
항상 동일한 버전의 패키지를 설치하기 위해 기록하여 관리하는 파일이다
노드 프로젝트를 시작할때는 항상 package.json을 작성해야하며
npm에서 명령어로 지원한다
프로젝트 폴더에서 npm init 명령어로 작성이 가능하다
package name : 패키지 이름을 작성한다. 폴더 이름과 패키지 이름이 동일하면 안된다
version : 패키지의 버전이다. 노드와 노드 패키지들의 버전은 세 자리로 구성되어있는 SemVer방식을 따른다.
첫 번째 자리는 Major로 하위 호환이 되지 않는 변경 사항이 안 될 확률이 큰 정도의 내용이 수정되었을때 변경된다
두 번째 자리는 minior로 하위 호환이 되는 업데이트를 의미한다. minor버전이 달라졌을때 업데이트를 해도 문제가 없어야 한다
세 번째 자리는 patch로 기능 추가가 아닌, 기존 기능에 문제가 있어 수정했을때 올라간다
package.json에는 버전을 나타는 세 자리 외에 ~ ^ < > 같은 기호가 있는데 이는 설치, 업데이트에 어떤 버전을 설치해야 하는지 알려준다
^ 기호는 minior 버전의 수정에 대해서만 설치, 업데이트가 가능하다 예를들어 ^1.1.0 이라면 1.1.0에서부터 2.0.0 미만까지 설치가 가능하다. 1.x.x 라고 표현할 수도 있다
~ 기호는 patch 버전의 수정에 대해서 설치, 업데이트가 가능하다 1.1.x 라는 표현도 가능하다
그 외의 <, =, >는 이상 이하 초과 미만 동일 등을 의미한다
entry point : 해당 프로젝트를 시작할 실행 파일을 지정한다
test command : package.json의 scropts에서 test 항목에 들어갈 node 커멘드를 입력한다
test는 말 그대로 테스트에 사용되며, start는 실제 해당 node라이브러리, 서버를 기동하는 명령어를 설정하면 된다
콘솔에서 npm run 명령어 를 사용하게 되면 해당 명령어를 실행한다
num run test를 사용하면 package.json의 scripts에 test가 실행이 된다
start와 test와 같은 스크립트는 run을 붙이지 않아도 실행이 된다
git repository : 프로젝트의 코드를 저장하는 깃 저장소 주소를 넣는다
keywords : 오픈 소스로 온라인에 올라갔을때 검색 키워드가 될 단어를 설정한다
배열 형태로 저장이 되며 쉼표","로 구분을 하면 자동으로 배열 형태로 들어간다
author : 작성자 이름, 프로젝트 이름 등을 넣는다
lisence : 해당 패키지의 라이센스를 넣는다
- 패키지 설치하기
패키지를 설치할때는 npm install 패키지명 으로 패키지를 설치하게 된다
만약 여러개를 동시에 설치하는 경우에는 npm install 패키지1 패키지2 ..... 처럼 패키지명 사이에
한칸 공백을 두고 패키지명을 적으면 된다
실제 배포시에는 포함되지 않고 개발 중에만 사용되는 패키지를 설치하는것도 가능하다
npm install --save-dev 패키지명 으로 개발용 파키지 설치가 가능하다
특정 폴더가 아닌 전역 설치 옵션이 있다
npm이 설치되어 있는 폴더에 설치하며, 보통 시스템 환경변수에 등록되어 있어
전역 설치한 패키지는 콘솔 명령어로 사용이 가능하다
npm install --global 패키지명 으로 설치가 가능하다
설치후 package.json의 dependencies에 설치된 패키지들이 추가되었다
이번에는 cookie-parser, express, express-session, nodemon, rimraf 총 다섯개를 설치했다
cookie-parser, express, express-session 세 가지는 npm install을 사용하여 설치했기 때문에
dependencies에 추가되었지만
소스가 변경될때마다 노드를 재시작 해주는 nodemon은 개발용 패키지
--save-dev 옵션으로 설치했기때문에 devDependencies에 추가되었다
윈도우에서도 리눅스처럼 rm -rf 명령어 사용이 가능한 rimraf는 전역 설치
--global 옵션으로 설치했기때문에 package.json에는 보이지 않는다
'Node' 카테고리의 다른 글
dotenv, morgan, static (0) | 2021.02.15 |
---|---|
express에서의 라우팅과 미들웨어 (0) | 2021.02.08 |
클러스터 (0) | 2021.02.06 |
쿠키와 세션 (0) | 2021.02.05 |
RESTful서버 (0) | 2021.02.04 |