SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode.
看到这篇文章的同学,肯定在网上已经看到了答案,原因是因为我们使用的webpack4中已经不会把一些es6的常用特性转换成es5了。 我是经过一系列的验证而得出这个不负责任的结论的。
首先这个问题我是在ios8系统的微信中发现的,特征就是白屏。一开始遇到的时候一脸茫然,因为手机上又不像电脑上的浏览器,可以查看报错。于是引入vconsole,才得以发现这个报错。
一开始我天真的以为只要将项目中的const全部换成var就可以了,新建了一个分支操作了之后发现没有变化。
在接下来,我想到的是babel,于是在.babeirc
{
"presets": [
"react",
"stage-0",
"es2015",
"es2016",
"es2017",
[ //加了这个数组的东西
"env",
{
"modules": false,
"targets": {
"browsers": "> 1%",
"uglify": true
},
"useBuiltIns": true
}
]
],
"plugins": [
"transform-runtime",
"transform-decorators-legacy",
"transform-class-properties",
[
"react-css-modules",
{
"generateScopedName": "[name]_[local]",
"filetypes": {
".scss": {
"syntax": "postcss-scss"
}
}
}
],
[
"import",
{
"libraryName": "antd-mobile",
"style": true
}
]
]
}
复制代码
但是好像没有用耶。
谷歌上说的基本上都是说因为webpack-dev-server这个包造成的,但经过思考我觉得并不是,因为这个包是用在我们运行时,也就是说打包的话其实跟这个包是不相关的。
我也是按照网上说的,将webpack-dev-server降级处理,但是这个包最新的版本是依赖webpack4的,无疑也要将webpack降级到webpack3。
在这里下个不负责任的结论,造成这个报错不是因为webpack-dev-server,而是因为webpack。
仅供参考。
如果不需要兼容ios8这个的低版本,我觉得webpack4还是ok的。