package.json 과 package-lock.json

devPomme·2021년 7월 10일
0

모듈과 패키지의 차이

package.json으로 설명되는 파일 또는 디렉토리.

모듈은 node.js 의 require() (타입스크립트의 경우 import from ) 함수로 로드될 수 있는 node_modules 디렉토리 안 파일 또는 하위 디렉토리를 가리킨다.
결론: package.json 을 가지는 모듈만이 패키지

package.jsonpackage-lock.json 의 차이

package-lock.json

package-lock.json 파일은 node_modules 디렉토리나 package.json 파일을 수정하게 되면 자동으로 생성된다고 한다. 해당 패키지/모듈을 설치한 시점의 버전에 대한 정보를 담고 있다.

결론: package-lock.json 파일을 소스 저장소에 커밋해야한다!
왜? npm install 을 수행하는 시점에 따라 다운받는 패키지의 버전이 달라진다면, 빌드가 실패하는 이슈가 발생할 수 있다. (ex. 레포에 올린 사람이 사용한 패키지 버전은 1.1.1인데 다운받아서 쓰는 사람은 1.1.2 인 경우..)
따라서 패키지 버전을 일치하기 위해 package-lock.json 을 저장소에 꼭! 같이 커밋하는 것이 좋다.

요약

  • package-lock.json 파일은 의존성 트리에 대한 정보를 모두 가지고 있다.
  • node_modules 폴더 없이 배포하는 경우 반드시 필요하다!

package.json

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

빌드 후 프로덕션 배포하기

개발 과정에서 사용했던 패키지들까지 같이 설치되어있는 node_modules 디렉토리를 삭제한다.

npm install --production 을 입력하면

package.json에 정의된 dependencies 패키지들만 설치된다.

이 상태에서 npm run build 명령어로 배포 버전의 파일들을 생성한다.

배포하면 끝!

profile
헌신하고 확장하는 삶

0개의 댓글