akjfal

Babel preset-env 관련 설정 본문

Babel

Babel preset-env 관련 설정

akjfal 2022. 4. 14. 23:10
{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          /**
           * default : oldest browsers - 명식적으로 작성 필요
           * 명시적으로 작성하는 것을 추천한다.
           */
          "esmodules": true, // es모듈을 지원하는 브라우저를 대상으로 하며, browsers와 교집합이 설정된다.
          "node": true, // node의 특정 버전을 지정할 수 있다. 높은 버전 지정시 에러를 뱉을 확률이 높으니 낮을 버전을 지정하자.
          // "safari": string | "tp" // 사파리의 technology preview 버전을 원한다면 "tp"를 해준다.
          "browsers": ["~last 2 versions", ">= 5% in KR"] // 브라우저, 버전별로 설정가능
        },
        "bugfixes": false, // babel8에 최적화될 예정이다. 에러인 구문을 최대한 안된 것으로 컴파일한다.
        "spec": false, // 지원하는 모든 플러그인에 대해 지원하지만 느려질 수 있다.
        "loose": false, // 모든 플러그인에 대해 느슨한 변환을 활성화한다.
        // 장점 : 더 빠르고, 이전엔진과 호환 잘된다. 더 깔끔한 es5스타일이 된다.
        // 단점 : 변환된 es6에서 일반 es6로 변환될 때 위험이 생길 수 있다.
        "modules": "auto", // es 모듈을 다른 모듈로 변환할 수 있다. babel과 함께 사용시 auto가 좋다.
        "debug": false, // console.log 폴리필 및 변환 플로그인에 대한 출력을 위해 필요
        "include": [], // 기존에 버그가 있거나 지원되지 않는 기능을 위해서 사용
        "exclude": [], // 다른 플러그인들을 사용할 때 사용된다.
        "useBuiltIns": false, // 폴리필을 처리하는 방법을 구성하는데 7.4.0에서 더이상 사용되지 않으므로 직접 추가해주는 것이 좋다.
        // "useBuiltIns": "entry" // 
        // "useBuiltIns": "useage" // 각 파일에서 폴리필이 사용할 때 특정 가져오기를 추가한다.
        "forceAllTransforms":  false, // 모든 강제 변환을 실행한다.
        "configPath": "process.cwd()", // browserlist에 대한 구성검색이 시작되고 찾을 때까지 시스템 루트로 올라가는 시작점
        "ignoreBrowserslistConfig": false, // browserslist키 참조를 포함하여 browserslist 구성소스를 사용 할 지 여부 = babel로 컴파일 되지 않는 파일에 browserslist 구성을 사용하는 프로젝트에 유용
        "browserslistEnv": "undefined", // 사용할 prwserslist 환경
        "shippedProposals": false, // 브라우저에 포함된 기본 제공/기능 제안에 대한 지운 활성화 여부
      }
    ]
  ]
}

document를 보면서 작성되여져 있는 사항들을 정리한 것입니다.

※ 아직 실제적인 사용을 통해 테스트 해본 사항들이 아닙니다. 하지만 글만 보고 작성한 것이기 때문에 각자에 대한 이해도가 부족한 상황입니다. 추후 개발을 시작하면서 테스트 해보면서 각자에 대한 사용 후기를 추가로 작성할 예정입니다.

'Babel' 카테고리의 다른 글

@babel/polyfill 공식 문서  (0) 2022.04.17
@babel/cli 공식 문서  (0) 2022.04.16
Babel 2021 로드맵  (0) 2022.04.16
Babel preset-typescript 관련 옵션  (0) 2022.04.16
Babel preset-react  (0) 2022.04.14
Comments