갈푸라떼
갈푸라떼는 개발중
갈푸라떼
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • CS (0)
      • CSinfo (0)
    • Frontend (15)
      • HTML,CSS (1)
      • Javascript (2)
      • React (0)
      • React Hook (12)
    • Backend (0)
      • Python (0)
      • Node.js (0)
      • php (0)
    • DB (2)
      • MySQL (2)
      • BigQuery (0)
      • Mongodb (0)
    • Study (186)
      • JavaScript (72)
      • JavaScript(Clean code) (50)
      • Node.js (11)
      • HTML,CSS (13)
      • React (30)
      • TypeScript (10)
      • React-Native (0)
    • Error (2)
      • error (2)
    • Git (22)
      • Git (22)
    • Help Coding (4)
      • Useful websites (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • Github

공지사항

인기 글

태그

  • 심볼
  • 상속
  • 자바스크립트엔진
  • PM2
  • 호이스팅
  • 네이밍
  • ECMAScript
  • 렉시컬 환경
  • 싱글스레드
  • Arrow
  • 함수
  • Babel
  • class
  • 프로토타입
  • 인터프리터
  • prototype
  • SPREAD
  • 객체타입
  • 스코프 체인
  • 이터러블
  • this
  • 컴파일러
  • structure
  • function
  • 원시타입
  • nodemon
  • symbol
  • 실행 컨텍스트
  • 오버라이딩
  • 정적 레벨

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갈푸라떼

갈푸라떼는 개발중

Study/JavaScript

[JavaScript_study] 바벨 (Babel)

2022. 4. 14. 21:25

* 바벨 (Babel)

  • 바벨을 이용해 최신문법으로 작성하고 예전 버전으로 변환이 가능하다.
  • react, node등 최신 프레임워크는 바벨과 같은 툴들이 전부다 들어있기 때문에 우리가 신경쓰지않고 최신문법으로 개발을 하면 나중에 프로젝트를 빌드해서 사용자에게 배포하는 코드에는 예전 자바스크립트 버전으로 변환해주는 기능이 포함되어 있다.
  • 순수 자바스크립트로 프로젝트를 진행하다가 예전 브라우저를 사용하는 유저에게까지 지원을 해야한다면 babel을 사용해서 버전을 내려서 빌드해야한다.
  • 타입스크립트 컴파일러는 TS를 JavaScript로 변환하는 용도로도 사용한다. // 하지만 최신 JS코드를 예전 JS코드로 변환하는데 사용할 수 있다.

* 바벨 실습해보기

  • https://babeljs.io 사이트에 들어가서 상단에 Try it out을 클릭한다.
  • 왼쪽칸에 TARGETS안에 not ie 11, not ie_mob 11를 삭제해서 인터넷 익스플로어를 대상으로 설정 해준다. 이후 코드를 작성한다.
  • 너무 불필요하게 모든버전을 지원하게 만들기보다는 내가 배포하고자하는 주된 사용자들이 어떤 브라우저 버전을 사용하는지 확인후 사용하는것이 좋다.

* VScode setup

  • npm init를 통해서 npm을 셋업한다.
  • 아래의 명령어를 통해서 바벨을 set up 해준다. (babel공식 사이트에서 Setup페이지에서 확인후 Setup을 할 수 있다.)
    • npm install --save- dev @babel/core @babel/cli @babel/preset-env
  • package.json안에 scripts를 "build": "babel index.js -w -o build/index.js"
    • index라는 파일이 변경될 때 마다 우리가 빌드를 하고 싶으니 watch모드( -w )를 추가해준다.
  • babel.config.json파일을 만들고 preset json안에 @babel/preset-env를 사용한다 셋팅해주고 targets를 설정해준다.
  • npm run build로 실행시킨다.

 

* babel.config 파일

{
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": {
                    "ie": "8",
                    "firefox": "12",
                    "chrome": "12",
                    "safari": "11.1"
                },
                "useBuiltIns": "usage",
                "corejs": "3.6.5"
            }
        ]
    ]
}

'Study > JavaScript' 카테고리의 다른 글

[JavaScript_study] arrow function (화살표 함수)  (0) 2022.04.14
[JavaScript_study] This바인딩  (0) 2022.04.14
[JavaScript_study] 클로저(Closure)  (0) 2022.04.14
[JavaScript_study] Mixin  (0) 2022.04.14
[JavaScript_study] 상속(inheritance) // prototype, class  (0) 2022.04.14
    'Study/JavaScript' 카테고리의 다른 글
    • [JavaScript_study] arrow function (화살표 함수)
    • [JavaScript_study] This바인딩
    • [JavaScript_study] 클로저(Closure)
    • [JavaScript_study] Mixin
    갈푸라떼
    갈푸라떼

    티스토리툴바