项目中关于ES6语法的兼容性 小结

项目中遇到的问题

本项目终端为用户手机App,问题出现于Android4.4版本,H5页面是基于 react 16+版本的项目,当 android 4.4版本的手机调起h5页面时,出现白屏。经过真机调试,在chrome控制台报出如下两个错误:

	Map is not defined

	Set is not defined

经查询发现, react@v16+ 依赖于ES6的 SetMap ,在 Android 4.4一下的版本是没有支持的,所以出现了上述的报错。

解决方法

官方推荐使用 babel-polyfill 来解决,故在此使用最新版本 babel@7
babel 包含了一个 polyfill。使用方法如下:

安装

npm install --save @babel/polyfill

这是一个polyfill,所以它将在你的源码之前运行,我们需要它是一个 dependency,而不是一个 devDependency

这里简单介绍一下@babel/polyfillwebpack 中的使用:

module.exports = {
	entry: ["@babel/polyfill", "你的入口文件路径"]
}

你可能感兴趣的:(项目中遇到的bug)