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