package.json으로 설명되는 파일 또는 디렉토리.
모듈은 node.js 의 require()
(타입스크립트의 경우 import from
) 함수로 로드될 수 있는 node_modules
디렉토리 안 파일 또는 하위 디렉토리를 가리킨다.
결론: package.json
을 가지는 모듈만이 패키지
package.json
과 package-lock.json
의 차이결론: package-lock.json 파일을 소스 저장소에 커밋해야한다!
왜? npm install 을 수행하는 시점에 따라 다운받는 패키지의 버전이 달라진다면, 빌드가 실패하는 이슈가 발생할 수 있다. (ex. 레포에 올린 사람이 사용한 패키지 버전은 1.1.1인데 다운받아서 쓰는 사람은 1.1.2 인 경우..)
따라서 패키지 버전을 일치하기 위해 package-lock.json 을 저장소에 꼭! 같이 커밋하는 것이 좋다.
요약
"dependencies": 프로덕션 환경에서 응용 프로그램에 필요한 패키지.
"devDependencies": 개발 및 테스트 환경에서 필요한 패키지.
개발 과정에서 사용했던 패키지들까지 같이 설치되어있는 node_modules
디렉토리를 삭제한다.
npm install --production
을 입력하면
package.json
에 정의된 dependencies
패키지들만 설치된다.
이 상태에서 npm run build
명령어로 배포 버전의 파일들을 생성한다.
배포하면 끝!