我有一个反应应用程序。在Windows 10上,它在Chrome和Internet Explorer 11上运行良好。但在Windows 7上,它仅适用于Chrome,而不适用于Internet Explorer 11。
我收到以下错误:
SCRIPT438: Object doesn't support property or method 'assign'
通过我的研究,这看起来像IE 11的兼容性问题(虽然不确定为什么它适用于Windows 10)。
据我所知,需要使用有关polyfill / transfill(?)/ babel的内容。但这里有一个我最大的问题:
我有一个包含所有站点代码的bundle.js文件。这是我自己的代码和NPM节点模块的混合。如果问题与我的代码有关,那么我可以添加导入行并更改我的代码。但错误来自npm节点模块。我无法编辑这些文件。如何在不触及这些文件的情况下解决此Object.assign问题?
我并不熟悉浏览器兼容性内容,所以我很困难
有什么建议吗?
答案 0 :(得分:2)
最好的长期/社区友好解决方案可能是确定导致问题的模块,并向模块的维护者提出问题。但是,如果您需要立即修复,或者如果您无法确定导致问题的模块,则可以在加载违规模块之前尝试包含Object.assign polyfill。
polyfill是一段代码,用于为尚未支持给定功能的浏览器手动定义功能(如Object.assign)。在这种情况下,您可以包含类似this module之类的内容,方法是将其导入到其他模块之前的捆绑包中,或者下载并提供该polyfill文件并在HTML文档中加载<script>
标记在加载bundle.js文件之前。这样,在浏览器遇到调用Object.assign的模块代码之前,将由polyfill定义Object.assign。
答案 1 :(得分:1)
另一个使用“ create-react-app”解决偷窥的方法,并且无法访问webpack配置文件,请执行以下步骤:
npm i babel-polyfill
然后:
// index.jsx 导入“ babel-polyfill”;