使用 IE11 时,在我的代码使用 Object.entries 或 Object.values 的任何地方都会出现如下错误:
未处理的拒绝类型错误:对象不支持属性或方法“条目”...
我认为我的问题源于代码未转译为 ES5,但不确定在使用 Aurelia CLI 时如何检查或更改我的项目设置以进行转译/Babel。
babel-preset-es2017
进一步研究,我相信与 Aurelia 打包的 Babel/settings 不支持 Object.entries/values (或其他提议的ES2017 选项),所以我安装了babel-plugin-transform-runtime
另一个线程 - Babel support for Object.entries
但是,我无法弄清楚如何更新项目以包含这些以进行编译。transform-runtime
在aurelia.json
or文件中添加.babelrc
会破坏au run
并简单地添加es2017
到.babelrc
文件似乎没有做任何事情。我也在查看jsconfig.json
和transpile.js
文件,但无法找到解决方案。
aurelia.json
文件:
...
"transpiler": {
"id": "babel",
"displayName": "Babel",
"fileExtension": ".js",
"options": {
"plugins": [
"transform-es2015-modules-amd",
"transform-runtime" <---tried
]
},
"source": "src/**/*.js"
},
...
.babelrc
文件:
{
"sourceMap": true,
"moduleIds": false,
"comments": false,
"compact": false,
"code": true,
"presets": ["es2015-loose", "stage-1", "es2017"], <---tried
"plugins": [
"syntax-flow",
"transform-decorators-legacy",
"transform-flow-strip-types",
"transform-runtime" <---tried
]
}
添加transform-runtime
任何一个都会导致以下错误:
错误:ENOENT:没有这样的文件或目录,打开 'C:\Users...\src\babel-runtime\helpers\classCallCheck.js'
不知道为什么我会收到这个错误或者修复它是否会有所帮助,但我的猜测可能是"source": src/**/*.js
因为aurelia.json
任何帮助将不胜感激。谢谢!