BABEL

BABEL

  1. BABEL
  2. BABEL이 하는 일
  3. Babel은 어떻게 동작할까?

BABEL

  • 바벨은 자바스크립트 컴파일러 BABEL Homepage
  • 모든 브라우저가 최신 문법, 기술(ES6) 을 지원하지 않기 때문에
  • 구 기능(ES5)으로 변환하는 작업이 필요
  • 참고

BABEL이 하는 일

기능설명
Transform syntax (구문 변환)트랜스파일링은 최신의 자바스크립트 문법을 오래된 브라우저가 이해할 수 있도록 오래된 문법으로 변환
babel-polyfill폴리필은 오래된 브라우저에 네이티브로 지원하지 않는 사용자가 사용하는 메서드, 속성, API가 존재하지 않을 때 추가해 준다.바벨은 최신 문법을 오래된 문법으로 변환해 주는 트랜스파일러 역할만 할 뿐 최신 함수를 사용할 수 있는 건 아니다. 폴리필은 프로그램이 처음 시작할 때, 지원하지 않는 기능들을 지원해 준다. Babel은 컴파일 때 실행되고 polyfill은 런타임에 실행

Babel은 어떻게 동작할까?

동작설명
Parsing (파싱)바벨은 소스 코드를 분석하여 AST(Abstract Syntax Tree)로 변환. AST는 소스 코드의 추상 구문 구조의 트리. 컴파일러에서 자료 구조로 사용되며 컴파일러의 구문 분석(parsing) 단계의 트리로 표현된 결과물이다. @babel/parser의 parse 함수를 사용하여 AWT로 파싱 할 수 있다.
Transformation (변환)이전 단계에서 생성된 AST를 브라우저가 지원하는 오래된 문법으로 AST를 변경. 이 단계에서 plugin 또는 preset(plugin 배열)에 의해 관리되는데 이때 사용되는 plugin들은 @babel/traverse을 사용하여 AST를 순회. 즉, @babel/traverse을 사용하여 AST를 순회하며 각 AST 노드들은 브라우저가 지원하는 코드를 나타내는 새로운 노드들로 대체되고 새로운 AST로 변경
Code Generation (코드 생성)바벨은 새로운 AST를 바탕으로 @babel/generator를 통하여 새로운 코드를 생성.

© 2018. All rights reserved.

Powered by Hydejack v8.4.0