Babel Preset 在 IE11 上不支持 Object.assign - "Object doesn't support property or method 'assign'"
Babel Preset does not provide support on IE11 for Object.assign - "Object doesn't support property or method 'assign'"
我正在为我的 React 应用程序使用 babel-preset-env 版本 - 1.6.1,我在 IE 上遇到错误:- 对象没有'不支持 属性 或方法 'assign'
这是我的 .babelrc :-
{
"presets": [
"react",
[
"env",
{
"targets": {
"browsers": [
"last 1 versions",
"ie >= 11"
]
},
"debug": true,
"modules": "commonjs"
}
]
],
"env": {
"test": {
"presets": [
[
"babel-preset-env",
"react"
]
],
"plugins": [
"transform-object-rest-spread",
"transform-class-properties",
"transform-runtime",
"babel-plugin-dynamic-import-node",
"array-includes",
"url-search-params-polyfill",
"transform-object-assign"
]
}
},
"plugins": [
"transform-object-rest-spread",
"transform-class-properties",
"syntax-dynamic-import",
"transform-runtime",
"array-includes",
"url-search-params-polyfill",
"transform-object-assign"
]
}
我尝试了这些 polyfills :-
https://babeljs.io/docs/plugins/transform-object-assign/
https://www.npmjs.com/package/babel-plugin-object-assign
但是没用
我正在使用语法:-
let a = Object.assign({},obj);
我项目中的所有地方
我需要一个适用于我的项目的 polyfill。
你需要Babel Polyfill.
在入口JS文件中导入,或者使用Webpack。
import "babel-polyfill";
或在webpack.config.js
module.exports = {
entry: ["babel-polyfill", "./app/main"]
}
注意:babel-polyfill
应该在最上面导入否则它将不起作用
自 Babel 7.4.0 起,Babel Polyfill 已过时
(Source)
请改用core-js。
import "core-js/stable";
import "regenerator-runtime/runtime";
或者使用 Webpack:
module.exports = {
entry: ["core-js/stable", "regenerator-runtime/runtime", "./app/main"]
}
在我的例子中,上面的 webpack 配置 没有工作! 因为我也缺少一个 promise polyfill。这是我最终使用的 webpack.config:
entry: { 'main': ['core-js/fn/promise', 'core-js/stable/object/assign', './wwwroot/src/app.js'] },
我正在为我的 React 应用程序使用 babel-preset-env 版本 - 1.6.1,我在 IE 上遇到错误:- 对象没有'不支持 属性 或方法 'assign'
这是我的 .babelrc :-
{
"presets": [
"react",
[
"env",
{
"targets": {
"browsers": [
"last 1 versions",
"ie >= 11"
]
},
"debug": true,
"modules": "commonjs"
}
]
],
"env": {
"test": {
"presets": [
[
"babel-preset-env",
"react"
]
],
"plugins": [
"transform-object-rest-spread",
"transform-class-properties",
"transform-runtime",
"babel-plugin-dynamic-import-node",
"array-includes",
"url-search-params-polyfill",
"transform-object-assign"
]
}
},
"plugins": [
"transform-object-rest-spread",
"transform-class-properties",
"syntax-dynamic-import",
"transform-runtime",
"array-includes",
"url-search-params-polyfill",
"transform-object-assign"
]
}
我尝试了这些 polyfills :-
https://babeljs.io/docs/plugins/transform-object-assign/ https://www.npmjs.com/package/babel-plugin-object-assign
但是没用
我正在使用语法:-
let a = Object.assign({},obj);
我项目中的所有地方
我需要一个适用于我的项目的 polyfill。
你需要Babel Polyfill.
在入口JS文件中导入,或者使用Webpack。
import "babel-polyfill";
或在webpack.config.js
module.exports = {
entry: ["babel-polyfill", "./app/main"]
}
注意:babel-polyfill
应该在最上面导入否则它将不起作用
自 Babel 7.4.0 起,Babel Polyfill 已过时
(Source)
请改用core-js。
import "core-js/stable";
import "regenerator-runtime/runtime";
或者使用 Webpack:
module.exports = {
entry: ["core-js/stable", "regenerator-runtime/runtime", "./app/main"]
}
在我的例子中,上面的 webpack 配置 没有工作! 因为我也缺少一个 promise polyfill。这是我最终使用的 webpack.config:
entry: { 'main': ['core-js/fn/promise', 'core-js/stable/object/assign', './wwwroot/src/app.js'] },