- ES6+와 ES.NEXT의 최신 ECMAScript 사양을 사용하여 프로젝트를 진행하려면 최신 사양으로 작성된 코드를 경우에 따라 IE를 포함한 구형 브라우저에서 문제 없이 동작시키기 위한 개발 환경을 구축하는 것이 필요
49.1 Babel
- ES6+/ES.NEXT로 구현된 최신 사양 소스코드를 IE같은 구형 브라우저에서도 동작하는 ES5 사양의 소스코드로 변환(트랜스 파일링) 가능
- npm을 사용하여 Babel 설치
# 프로젝트 폴더 생성
mkdir esnext-project && cd esnext-project
# package.json 생성
npm init -y
# babel-core, babel-cli 설치
npm install --save-dev @babel/core@babel/cli
1) babel/core
- babel의 핵심 기능 포함
2) babel/cli
- 터미널에서 babel 명령어를 사용할 수 있게 도와줌
3) babel/preset -env
- 함께 사용되어야 하는 Babel 플러그인을 모아둔 것으로 Babel 프리셋 이라고 부름
- 필요한 플러그인들을 프로젝트 지원 환경에 맞춰 동적으로 결정
- 공식 Babel 프리셋
- @babel / preset -env
- @babel /preset -flow
- @babel / preset - react
- @babel /preset - typescript
# babel/preset-env 설치
npm install --save-dev @babel/preset-env
- 설치가 완료되면 프로젝트 루트 폴더에 babel.config.json 설정 파일을 생성하고 다음과 같이 작성
- 지금 설치한 @babel/preset-env를 사용하겠다는 의미
{
"present" : ["@babel/preset-env"]
}
49.2 Webpack
- 의존 관계에 있는 자바스크립트, CSS, 이미지 등의 리소스들을 하나(또는 여러 개)의 파일로 번들링하는 모듈 번들러
- Webpack을 사용하면 의존 모듈이 하나의 파일로 번들링되므로 별도의 모듈 로더가 필요 없음
- 여러 개의 자바스크립트 파일을 하나로 번들링하므로 HTML 파일에서 script 태그로 여러 개의 자바스크립트 파일을 로드해야 하는 번거로움도 사라짐
- npm을 통해 Webpack 설치
npm install --save-dev webpack webpack-cli
'JavaScript' 카테고리의 다른 글
[Deep dive] 48장 모듈 (0) | 2023.08.25 |
---|---|
[Deep dive] 47장 에러 처리 (0) | 2023.08.25 |
[Deep dive] 46장 제너레이터와 async/await (0) | 2023.08.24 |
[Deep dive] 45장 프로미스 (0) | 2023.08.24 |
[Deep dive] 44장 REST API (0) | 2023.08.23 |