전세계 개발자들이 만든 다양한 패키지, 모듈등을 관리.
Node.js 설치시 NPM이 같이 설치됨.
스타벅스 예제를 만들때 사용했떤 라이브러리인 lodash, GSAP, SWIPER, ScrollMagic 등도 NPM을 통해 설치 할 수 있음.
스타벅스 예제처럼 링크를 이용해 사용 할 수도 있고, NPM을 통해 프로젝트에 설치하여 사용 할 수도있음. 각각방법에 장단점이 있으나 NPM을 통해 설치해서 사용하는 것이 관리효율이 증가하고 기능 고도화가 쉬움!
$ npm init -y // 현제 폴더에 package.json 이라는 파일 생성.
$ npm install xxx // xxx(패키지, 모듈, 기능등)를 프로젝트에 설치.
package.json 내에는 간단한 프로젝트 정보나 버전등이 기록됨.
$ npm install parcel-bundler -D // npm 설치, 설치 모듈 이름 뒤에 -D를 붙였음.
parcel-bundler(npm) 설치가 완료되면 폴더내에 node_modules
라는 폴더와, package-lock.json
이라는 파일이 생성됨. node_modules 폴더 내에는 많은 패키지들이 포함되어있음. 이패키지들은 parcel-bundler를 사용할때 필요한 부분이라고 생각하면됨.
parcel-bundler(npm)설치 후 package.json폴더에 DevDependencies 내에 버전과 함께 기록됨.
pakage-lock.json내부에는 설치도니 npm 실행에 필요한 다른 패키지 정보들이 담기게됨.
$ npm install lodash // npm 설치, 설치 모듈 이름 뒤에 -D를 붙이지 않음!!
lodash(npm)설치 후 package.json폴더에 Dependencies 내에 버전과 함께 기록됨.
이렇게 npm설치 내역이 기록되게 되면 node_modules라는 폴더를 삭제하더라도 한번에 재설치 가능.
$ npm install (or) $ npm i // package.json 폴더에 기록된 npm을 모두 설치.
npm install 시
-D
는 Dev(Devleoper)를 의미하는 것으로 -D를 붙여 설치 parcerl-bundler같은 모듈은 개발용 의존성 패키지 설치를 의미하며, 이는 개발환경에서만 필요한 모듈이라는 의미를 가짐.
-D
를 붙이지 않고 설치한 lodash는 일반 의존성 설치를 의미하며, 프로젝트 완성후 브라우저에서도 동작할수 있다는 개념임.