본문 바로가기

programming study/Front-end

NPM

본 내용은 인프런 김정환님의 프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..) 강의를 토대로 작성하였습니다.

1. Node.js

  • 최신스펙으로 개발할 수 있다.
    • 웹팩, 바벨, TypeScript, SASS를 실행할 수 있는 환경이 되어준다.
  • 빌드 자동화
    • 파일 압축, 코드 난독화, 폴리필 추가의 작업을 거친후 배포
    • 라이브러리 의존성 해결
    • 각종 테스트 자동화
  • 개발 환경 커스터마이징

node REPL

  • Node.js 설치 후 터미널에서 node를 입력
  • 자바스크립트 코드를 입력하고 즉시 결과를 확인 가능
  • .exit: 종료

NPM

  • node package manager

2. NPM으로 프로젝트 생성하기

프로젝트 생성

npm init
  • 프로젝트를 생성하고 메타정보를 입력
  • 모든 메타정보가 입력되면 package.json이 생성

package.json

  • 프로젝트 메타정보와 패키지 정보가 있는 파일
  • script: 프로젝트를 자동화할 수 있는 명령어 설정(shell script)

3. 패키지 설치

CDN을 이용한 방법

  • Contents Delivery Network
  • script태그를 사용해서 필요한 패키지 로드
  • CDN 서버에 장애가 생기면 패키지를 가져오지 못함
    • 우리의 웹 애플리케이션이 제대로 동작하지 못함

직접 다운로드

  • CDN 서버 상태에 의존하지 않고 독립적으로 웹 애플리케이션을 제공할 수 있음
  • 패키지가 업데이트하면 최신 버전으로 직접 교체해야함

NPM을 이용한 방법

npm install <package-name>
  • 설치가 완료되면 프로젝트의 package.json에 해당 패키지의 이름과 버전이 기록
    • dependencies

4. Node.js에서의 버전 관리

유의적 버전

  • 주 버전(Major Version): 기존 버전과 호환되지 않게 변경한 경우
  • 부 버전(Minor Version): 기존 버전과 호환되면서 기능이 추가된 경우
    • 일부 오픈 소스에서는 이 규칙이 맞지 않은 경우가 종종 있다.
  • 수 버전(Patch Version): 기존 버전과 호환되면서 버그를 수정한 경우

버전의 범위

  • 버전을 바로 입력한 경우: 특정 버전만 사용
    • 예) 1.2.3으로 적혀있으면 해당 버전만 사용
  • 버전 앞에 부등호를 사용하면 부등호에 따른 버전을 사용
    • 예) > 1.2.3 해당 버전보다 높은 버전만 사용
  • 틸트(~): 마이너 버전이 명시되어 있으면 패치버전을 변경
    • 예) ~1.2.3 해당 버전부터 1.3.0 미만 까지를 포함
    • 마이너 버전이 없으면 마이너 버전을 갱신
    • 하위 호환성이 깨질 위험
  • 캐럿(^): 정식버전에서 마이너와 패치 버전을 변경
    • 예) ^1.2.3 해당 버전부터 2.0.0 미만 까지를 포함
    • 정식버전 미만인 경우 (^0) 0.0.0부터 0.1.0 미만 까지를 포함
    • 하위 호환성을 유지할 수 있음

Reference

[인프런]프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)