โ† flaviocopes.com

Parcel, how to fix the `regeneratorRuntime is not defined` error

Published May 08 2020

Psssst! The 2023 WEB DEVELOPMENT BOOTCAMP is starting on FEBRUARY 01, 2023! SIGNUPS ARE NOW OPEN to this 10-weeks cohort course. Learn the fundamentals, HTML, CSS, JS, Tailwind, React, Next.js and much more! โœจ

I run into this problem in a project using Babel as soon as I added an async function, but the problem is the same for any recent JavaScript feature:

Babel, used by Parcel, generates a polyfill, but to avoid this error you need to also load the regenerator-runtime runtime.

One solution: add to the top of your main JavaScript file:

import 'regenerator-runtime/runtime'

Parcel will include this package by default, increasing the size of 25KB.

The solution that is the most efficient in terms of codebase is adding the browserslist property to your package.json.

For example:

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

For testing is good enough. To support multiple browsers:

"browserslist": [
  "last 3 and_chr versions",
  "last 3 chrome versions",
  "last 3 opera versions",
  "last 3 ios_saf versions",
  "last 3 safari versions"
]

or also:

"browserslist": [
  "since 2017-06"
]

You have to add a version thatโ€™s recent enough to support async/await, so Babel does not try to add a polyfill.

Check all the valid values here: https://github.com/browserslist/browserslist



I write books for developers ๐Ÿ‘‡๐Ÿผ

© 2023 Flavio Copes Flavio Copes made in Italy ๐Ÿ‡ฎ๐Ÿ‡น using Notion to Site Notion to Site