欢迎光临散文网 会员登陆 & 注册

【D1n910】nuxt项目兼容低版本ie

2020-03-20 20:51 作者:爱交作业的D1N910  | 我要投稿

正常操作,正常分析,大家好,我是D1n910

Nuxt其实是很爽的开箱即用的SSR方案。


它本身就已经继承了大量的轮子。


Nuxt本身默认兼容到ie9。


做的项目发现却不能够在ie9上跑,甚至不能在ie10上跑。


总结有以下几种情况和对应方式(感觉不仅仅是nuxt,其他的也可以这么做)

一、第三方包代码不兼容ie9

用nuxt自带的babel进行转换。babel转换默认不会转换第三方node_modules/下的内容。


通过开发者工具的报错抓到对应的第三方包名称。


通过配置文件nuxt.config.js下的build属性的transpile,可以针对需要解析的第三方包进行转换。

nuxt.config.js默认转换element-ui的代码


比如这里的ismobile.js的const就没做转换,可以添加上去后进行转换。

ismobilejs



二、使用了未定义的javascript对象

比如使用了Map对象,IE10及其以下版本不支持Javascript Map对象,会提示“Map”未定义。


那么可以引入对应的core-js包进行转换。


新建一个文件夹 /plugins/core.js


这里引入对应的转换包

通过配置文件nuxt.config.js下的plugins属性,添加刚刚的core(放到第一位)

然后就可以转换成功了


三、使用了高级js原型链prototype的方法

比如我在根文件html使用了includes方法,那么就会报送includes错误。通过改为低版本的的方法实现,比如我改为indexOf判断。


以上的内容就差不多了。


四、使用了不兼容的第三方js

如果你引用了第三方js的cdn然后报错,比如我这边用了iconfont的js的cdn,需要下载后作为本地js文件然后转换处理。


核心内容还是用的babel,做了以上内容,基本上可以兼容到ie9.


什么?兼容到ie6?你再说一遍?喂喂喂,我在服务器……哎呀,风大听不见啊喂……先这样,挂了。bye

-- END --

【D1n910】nuxt项目兼容低版本ie的评论 (共 条)

分享到微博请遵守国家法律