vue报错:SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode

使用vue-cli搭建的项目,在安卓上页面展示正常,在iphone10以上系统上显示也正常的,但是在iphone9.3的系统上,页面一片空白,body里只有一句


使用safari调试后发现有2条报错信息,报错内容如下:

SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode

意思是说,const这个在严格模式下,不支持,网上搜索了答案,说是webpack-dev-server版本高于2.7.1时,在打包编译时不会把es6转es5,所以系统版本较低时会出错。
然后参照网上的方法,把webpack-dev-server降级

npm i webpack-dev-server@2.7.1

之后页面上的报错信息变成了一条,但是报错的内容还是上面那句话,最后仔细看了下报错的文件,是还个dateData.js文件里面使用了const定义常量,这个dateData文件是在:node_modules/vue-pickers/lib/dateData.js
把里面的const改成了var后,继续调试,ios9.3下还是一片空白,但是报错信息不是const了,是let定义有问题,于是把这个文件里面的let也换成了var,页面就出来了

说明:这个文件是我自己创建的,此文件同级目录下还有组件自带的一个areaData.js文件,里面也用const和let定义了变量,但是不会报错,我猜估计是这个组件编译过,但是我自己创建的文件没有所以es6的语法在低系统不支持。

另外:需要将项目里package.json文件里的"babel-preset-stage-2": "^6.22.0",改成

"babel-preset-es2015": "^6.22.0",

并安装下babel-preset-es2015
参考地址:https://github.com/mrdulin/blog/issues/35

你可能感兴趣的:(vue)