Parcel, how to fix the `regeneratorRuntime is not defined` error
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
Here is how can I help you:
- COURSES where I teach everything I know
- THE VALLEY OF CODE your web development manual
- BOOTCAMP 2024 cohort in progress, next edition in 2025
- BOOKS 16 coding ebooks you can download for free on JS Python C PHP and lots more
- SOLO LAB everything I know about running a lifestyle business as a solopreneur
- Interesting links collection
- Follow me on X