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的。