본문으로 바로가기

regeneratorRuntime

category Frontend 2021. 5. 30. 18:26

어떤 오류인가

아마 Webpack, parcel 등의 번들러를 사용하다가 지원하지 않는 문법을 만나면 이런 에러가 발생하는 듯하다

나의 경우에는 parcel로 돌리다가 async / await를 사용했을 때 발생하였다

해결 방법

해결 방법에는 여러 가지가 존재한다

import

최신 문법을 지원하지 않아서 발생하는 에러이니 바벨을 사용해서 폴리필을 해주면 된다

npm install @babel/plugin-transform-runtime 로 설치해준 뒤에

entry가 되는 js파일이나 해당 해당 문법을 사용하고 있는 js의 상단에 import 해주면된다

import '@babel/plugin-transform-runtime'

babelrc

블로그를 전전하다 보니 위의 방법은 전역 스코프가 오염될 수 있다고 한다

그를 방지하기 위해서는 따로 .babelrc파일을 설정해주면되는데 만들어 두기만하면 webpack이나 parcel이 자동으로 내부의 설정을 읽는다

//.babelrc
{
  "plugins": [
    [
      "@babel/plugin-transform-runtime",
      {
        "absoluteRuntime": false,
        "corejs": 3,
        "helpers": true,
        "regenerator": true
      }
    ]
  ]
}

설정값은 공식 doc에 자세히 설명되어있다

browserslist

package.json 에 browserlist 설정을 추가해주면된다

"browserslist": [
  "last 1 Chrome version"
]

browserslist?

browserslist는 바벨 폴리필의 target 옵션기능만 따로 뽑아놓았다고 생각하면 된다

내가 사용할 브라우저를 설정하면 그에 맞는 바벨 설정을 해준다

'Frontend' 카테고리의 다른 글

git cannot lock, cannot create 에러  (0) 2021.06.06
parcel 정적 파일 빌드  (0) 2021.05.31
토큰 기반 인증  (0) 2021.05.20
다크 모드 구현  (0) 2021.05.14
프론트엔드 개발환경의 이해 : 핫 로딩, 최적화  (0) 2021.04.10