Package.json

송민지·2022년 5월 29일
0

Javascript

목록 보기
16/17

Package.json
* 현재 프로젝트에 대한 정보와 사용 중인 패키지에 대한 정보를 담은 파일

Package.json의 속성들

  • package name: 패키지의 이름
  • version: 패키지의 버전
  • entry point: 자바스크립트 실행 파일 진입점. 보통 마지막으로 module.exports를 하는 파일을 지정하고 package.json의 main 속성에 저장됨
  • test command : 코드를 테스트할 때 입력할 명령어. package.json scripts 속성 안의 test 속성에 저장
  • git repository: 코드를 저장해둔 Git 저장소 주소를 의미. package.json의 repository 속성에 저장
  • keywords: npm 공식 홈페이지(https://npmjs.com)에서 패키지를 쉽게 찾을 수 있게 해준다. package.json의 keywords 속성에 저장
  • license: 해당 패키지의 라이선스를 넣어주면 됩다.

package.json 파일은 반드시 name과 version 항목을 포함해야한다.
name: 소문자 한 단어로 이루어져야합니다. 그리고 하이픈( - )과 언더스코어( _ )가 포함될 수 있다.
versoin: x.x.x 형식을 따라야 하며, 작성 규칙을 시맨틱 버저닝이라고 한다.

패키지 정보

패키지 정보는 dependencies 또는 devDependencies에 작성된다.

dependencies와 devDependencies의 차이

"dependencies": 프로덕션 환경에서 응용 프로그램에 필요한 패키지.
"devDependencies": 로컬 개발 및 테스트에만 필요한 패키지.

패키와 모듈
1) 패키지
패키지는 package.json 으로 설명되는 파일 또는 디렉토리.

패키지는 npm 레지스트리에 공개되기 위해 반드시 package.json 파일을 가지고 있어야한다.

2) 모듈
모듈은 node.js의 require() 함수로 로드될 수 있는 node_modules 디렉토리안의 파일 또는 디렉토리.

주의: 모듈은 package.json 파일을 가질 필요가 없다. 모든 모듈들이 패키지는 아니다. package.json을 가진 모듈만이 패키지다.

모듈이 패키지 보다 조금 더 큰 개념(모듈이 모집합, 패키지가 모듈의 부분집합?)

  1. 패키지 지정
    패키지를 지정하기 위해서는 패키지의 package.json 파일의 "dependencies" 또는 "devDependencies" 에 패키지를 명시해야한다.

만약 npm install 을 실행하면, npm 은 package.json에 나열된 각각의 시맨틱 버전 요구 사항을 충족하는 dependencies" 와 "devDependencies"를 다운받는다.

"dependencies": 프로덕션 환경에서 응용 프로그램에 필요한 패키지.
"devDependencies": 로컬 개발 및 테스트에만 필요한 패키지.

  1. 시맨틱 버저닝
    버전은 . dot을 기준으로 3영역 Major, minor, patch 로 구분.

시맨틱 버저닝 에 따라 버전을 작성하고, 그 규칙은 다음과 같다.

참고로 2020.05.11 Vue.js의 버전은 2.6.11입니다. 2020년 이내에 vue 3가 나온다는 의미는 제일 앞의 숫자가 3, 가운데와 마지막 숫자가 0이 되는 메이저 업데이트를 의미합니다.

  1. 틸드(~) 와 캐럿(^)
    패키지의 버전에는 ^ 와 ~ 이 적혀있습니다. ~는 틸드(tilde), ^는 캐럿(caret)이라고 읽는다.

틸드와 캐럿의 사용에는 시맨틱 버저닝 규칙이 사용된다.

1) 틸드(~)
해당 패키지의 패치 레벨 변경을 허용하겠다는 의미.

~4.3.0 은 >= 4.3.0 이상, < 4.4.0 미만 과 같은 의미.

즉, 4.4.0 미만의 패치 레벨 변경을 허용하겠다는 것.

"devDependencies": {
"@vue/cli-service": "~4.3.0",
},

2) 캐럿(^)
해당 패캐지의 마이너, 패치 변경을 허용하겠다는 의미.

~2.6.11 은 >= 2.6.11 이상, < 3.0.0 미만 과 같은 의미다.

즉, 3.0.0 미만의 마이너, 패치 변경을 허용하겠다는 것.

"dependencies": {
"vue": "^2.6.11"
}


profile
기록하는 일상

0개의 댓글