最近用react寫了一個網站,在pc端和ios自帶瀏覽器上都可以運行,但拿到安卓機器的瀏覽器上顯示白屏,谷歌了一下,發現是babel的問題。
Babel默認只轉換新的JavaScript句法(syntax),而不轉換新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局對象,以及一些定義在全局對象上的方法(比如Object.assign)都不會轉碼。
舉例來說,ES6在Array對象上新增了Array.from方法。Babel就不會轉碼這個方法。如果想讓這個方法運行,必須使用babel-polyfill,為當前環境提供一個墊片。
解決方法是安裝babel-polyfill
$ npm install --save babel-polyfill
然后在入口文件中添加
import 'babel-polyfill';
再次運行就可以了。