我有一个客户,其员工在较旧的iPad上工作,他们无法将他们的Safari版本更新为10.x +,因此他们已经卡住了safari 9.x.当我尝试在iPad上的Safari 9.x中加载我的浏览器应用程序时,我一直收到以下错误:
SyntaxError: Unexpected keyword 'const'. Const declarations are not supported in strict mode.
我在我的webpack配置中使用babel-loader
,并且我在装载程序的options
属性中设置了以下babel选项:
{
presets: [
[
"env",
{
targets: {
browsers: ["last 3 versions", "safari >= 8"]
},
debug: true
}
],
// `es2015`,
`stage-1`
],
retainLines: true,
plugins: [
"syntax-jsx",
"transform-react-jsx",
"transform-react-display-name",
"transform-react-require",
"transform-es2015-destructuring",
"transform-es2015-parameters",
"transform-object-rest-spread",
"transform-class-properties",
// "check-es2015-constants",
// "transform-es2015-block-scoping",
["transform-runtime", {
"polyfill": false,
"regenerator": true
}]
]
}

在我的控制台中,当我进行构建时,它甚至出现了:
Using targets:
{
"chrome": "59",
"android": "4.4",
"edge": "13",
"firefox": "54",
"ie": "9",
"ios": "10",
"safari": "8"
}
和
Using plugins:
check-es2015-constants {"android":"4.4","edge":"13","ie":"9","safari":"8"}
transform-es2015-block-scoping {"android":"4.4","edge":"13","ie":"9","safari":"8"}
但是在我的捆绑包中仍有STILL const
声明(确切地说是65)。不,它们不是所有node_module
个导入......大多数都是我自己的React组件文件。
如何让babel只替换const
w / var
的所有实例?
我在webpack
3.7.1和babel-loader
7.1.2和babel-core
6.26
答案 0 :(得分:0)
结果我仍在使用此项目的Webpack别名:https://github.com/njl07/rx-http-request/issues/15#issue-273561398
显然,出于某种原因,babel转换不适用于别名。
更新到最新的套餐,现在一切都很好。