【问题标题】:How to transform Object.defineProperty in IE8如何在 IE8 中转换 Object.defineProperty
【发布时间】:2023-03-26 15:48:02
【问题描述】:

我使用React、Webpack、Babel 构建项目并希望它在IE8 中运行,存在IE8 不支持Object.defineProperty 的问题。

我没有使用这个功能,但是 npm 包可以使用,比如 react-router。 我尝试过 polyfill、es5-shim、es5-sham 和很多 babel 插件,但不幸的是不适合我...

那么对于这种情况我还能做些什么呢?

真心感谢。

【问题讨论】:

    标签: reactjs internet-explorer-8 babeljs defineproperty


    【解决方案1】:

    通常,为了支持更老的浏览器,您应该使用babel-preset-es2015-loose 而不是babel-preset-es2015,这将停止大多数使用Object.defineProperty

    【讨论】:

    • 抱歉回复晚了。我已经使用了松散模式,但是文件 es5.js 中有错误。详情是if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!')。其实我不知道是什么代码导致了这个错误......非常感谢
    • Object.defineProperty 无法转译。松散模式告诉 Babel 尽可能避免使用它,但目前它仍然可以根据你的使用情况突然出现。例如,export * from 'foo'; 将生成 Object.defineProperty 调用。您将需要调试您的代码库并找出对其调用的来源。
    • 我已经将代码从export defaultexport * 重构为module.exports,我保证我的代码没有问题。应该是第三方库的错误,但是我定位不准。但也谢谢你...
    猜你喜欢
    • 2014-02-06
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2010-12-29
    • 2011-09-30
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多