package.json은 직접적으로 관리하는 파일
package-lock.json은 특정한 패키지들이 자동으로 관리되는 형태
node_modules는 언제든지 삭제해도 되지만(npm install이라는 명령어로 언제든지 다시 설치 가능),
package.json, package-lock.json은 삭제하면 안됨
$ npm install -D
$ npm install 차이점
: 설치할 때 -D라는 플래그를 붙이면 개발용 의존성 패키지 설치로 내부 Dependencies에 설치되고,
안붙이면 일반 의존성 설치로 일반적인 Dependencis에 설치됨
개발용 의존성 패키지:
내가 설치한 특정한 패키지들이 개발할때만 필요하고 나중에 웹브라우저에서는 필요없음
일반 의존성 패키지: 실제로 웹브라우저에서 동작할수도있다는 것을 전제
ex) $ npm install -D parcel-bundler
$ npm install lodash
-D는 --save-dev의 약어
dev는 development(개발)의 약어
E.g, 12.14.1에서
12는 Major, 14는 Minor, 1은 Patch
Major : 기존 버전과 호환되지 않는 새로운 버전
Minor : 기존 버전과 호환되는 새로운 기능이 추가된 버전
Patch : 기존 버전과 호환되는 버그 및 오타 등이 수정된 버전
^Major.Minor.Patch (^12.14.1) 이렇게 되어있으면 Major 버전 안에서 가장 최신 버전으로 업데이트 가능
^ : 캐럿
package.json에 일반적인 의존성 패키지와 개발용 의존성 패키지 버전 앞에 캐럿을 사용한다는 것은
npm update라는 명령을 통해 마이너버전, 패치버전이 언제든지 최신 버전으로 업데이트가 될 수 있음