[node js] npm? package.json? package-lock.json? node_modules?

[node js] npm? package.json? package-lock.json? node_modules?

npm이란?

npm은 Node Package Manager의 약어다. 파이썬에서 라이브러리와 패키지를 관리하기 위해 사용되는 pip와 동일하다고 생각하면 된다.

npm 특징

  1. 프로젝트(디렉토리) 단위로 설치된다

파이썬의 pip의 경우 전역 환경이나 가상환경에 패키지가 설치된다. 하지만 npm은 패키지를 설치할 때 해당 프로젝트(디렉토리)에 설치된다. 즉, 하나의 프로젝트에서 패키지 설치 후 다른 프로젝트로 이동하게 되면 전 프로젝트에서 설치했던 패키지는 사용할 수 없다. 해당 패키지를 사용하기 위해서는 다시 한 번 패키지 다운로드를 진행해야 한다.

만약 패키지를 전역으로 사용하고 싶다면 ‘-g’옵션을 사용하면 된다.

  1. package.json 파일을 통해 메타데이터, 의존성을 관리한다

파이썬의 경우 requirements.txt를 이용해 보통 메타데이터와 의존성을 관리한다. Node.js의 경우 package.json이라는 파일을 통해 메타데이터와 의존성을 관리한다.

npm init이란?

말 그대로 npm을 시작하겠다는 의미. 새로운 Node.js 프로젝트를 설정할 때 사용되는 명령어로, 해당 명령어를 통해 package.json 파일이 생성된다.

package.json VS package-lock.json

Node.js를 이용해 개발을 진행하다보면 어느샌가 package.json이라는 파일과 package-lock.json이라는 파일이 생긴 모습을 확인할 수 있다. 이때 두 파일은 무엇이며 차이는 무엇일까?

package.json

프로젝트의 주요 메타데이터와 패키지 의존성을 선언하는 파일

package-lock.json

package.json에 선언된 의존성을 실제 설치된 버전 및 트리 구조로 고정하여 기록하는 파일

요약

package.json 파일은 프로젝트의 전반적인 설정과 의존성을 정의하는 반면, package-lock.json 파일은 의존성 트리를 고정하여 재현 가능한 빌드를 보장한다. 두 개 동시에 사용되며 프로젝트의 일관성과 안정성을 유지하는 목적으로 쓰임

node_modeuls?

node_modules는 npm을 통해 설치된 패키지와 라이브러리가 저장되는 공간이다. 위에서 npm의 특징으로 ‘프로젝트(디렉토리) 단위로 설치된다’라고 설명했다. 이 때 프로젝트 하위에 패키지가 설치되는 폴더명이 바로 ‘node_modules’. 해당 폴더에 패키지를 저장하면 이미 설치된 패키지의 중복 다운로드를 피할 수 있고, 일관된 버전의 패키지를 사용할 수 있으므로 프로젝트의 일관성과 안정성을 보장할 수 있다.

results matching ""

    No results matching ""