原因:低版本浏览器内核版本太低,无法解析 ES2015最新的一些语法。
babel是一个转译器,把同种语言的高版本规则翻译成低版本规则
一般搭建项目时webpack会在最外层配置一个.babelrc文件用于默认解析ES2015(es6)中的特殊语法(例如: let,const,class等)
而babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。
所以需要使用babel-polyfill,为当前环境提供一个垫片,需要在Webpack中配置babel-loader。
按照步骤:
(一)、首先检查根录下.babelrc文件:
)presets字段设定转码规则,官方提供以下的规则集,你可以根据需要安装。
点击此处到Babel中文presets配置页面:Babel Plugins
1)ES2015转码规则
$ npm install --save-dev babel-preset-es2015
2)react转码规则
$ npm install --save-dev babel-preset-react
3)ES7不同阶段语法提案的转码规则(共有4个阶段),选装一个就可以了
$ npm install