小记一次项目中react-intl在IE10的不兼容问题

@kvkens 2018-08-07 05:13:39发表于 iuap-design/blog

前提

在一个某大型项目中,同事使用了多语的一个包,react-intl在主流chrome,firefox这类下都没问题,在IE10的时候发现了错误...

我通过查询该包的详细说明后,发现是基于Intl去封装的,打开Intl的仓库后,发现说明里有写,依赖intl-polyfill,然后打开这个文件准备打包在项目里的时候,发现用chrome这类的浏览器访问,它是这样的:
https://cdn.polyfill.io/v2/polyfill.js?features=Intl.~locale.en

/* Polyfill service v3.25.1
* For detailed credits and licence information see https://github.com/financial-times/polyfill-service.
*
* UA detected: chrome/68.0.0
* Features requested: Intl.~locale.en
*  */

(function(undefined) {

   /* No polyfills found for current settings */

})
   .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});

分明没有任何有价值的东西,显然这不对,我用IE10访问的时候,发现才是最终的polyfill针对多语的版本,然后问题迎刃而解

最后总结:使用该多语插件的时候,该CDN会自动分析浏览器的UA信息,根据不同浏览器返回不同的处理js,要多看看说明文档,它的源码,它依赖了什么,不使用CDN需要自己手动去摘取代码等。