본 내용은 인프런 김정환님의 프론트엔드 개발환경의 이해와 실습 (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
'programming study > Front-end' 카테고리의 다른 글
Babel - 기본개념(등장 배경, 설치, 기본 동작, 플러그인) (0) | 2021.08.17 |
---|---|
Webpack - 플러그인(Plugin) (0) | 2021.08.16 |
Webpack - 로더 (0) | 2021.08.15 |
Webpack - 엔트리와 아웃풋 (0) | 2021.08.14 |
Webpack - 웹팩이 필요한 이유와 모듈 시스템 (0) | 2021.08.13 |