Parcel,如何修復“regeneratorRuntime未定義”錯誤
我在一個使用Babel的項目中遇到了這個問題,只要我添加了一個async
函數,這個問題就會出現,但對於任何最近的JavaScript功能,問題都是一樣的:
由Parcel使用的Babel生成了一個polyfill,但為了避免這個錯誤,你還需要加載regenerator-runtime
運行時。
一種解決方案是在你的主JavaScript文件的頂部添加以下內容:
1 | import 'regenerator-runtime/runtime' |
Parcel在默認情況下會包含這個包,增加了25KB的大小。
在代碼庫方面,最有效的解決方法是在你的package.json中添加browserslist
屬性。
例如:
1 | "browserslist": [ |
對於測試來說足夠好了。支持多個瀏覽器:
1 | "browserslist": [ |
或者:
1 | "browserslist": [ |
你需要添加一個足夠新的版本來支持async/await
,這樣Babel就不會嘗試添加一個polyfill。
在這裡檢查所有有效的值:https://github.com/browserslist/browserslist
tags: [“JavaScript”, “Parcel”, “Babel”, “regeneratorRuntime”]