浏览器低版本兼容问题 解决可选链'?.'和双问号'??'
一次项目开发中,我本地浏览器没有任何问题,但是客户那边经常会有人打开页面就白屏,我这边也看不到报错,这种个别人必现问题,我就定位到是浏览器版本问题了。
一问他们版本 一个46,一个74。这是多么老的版本啊,让他么升版本,死活不升。
说是他们有什么东西需要U盾之类的东西,升了用不了,那好吧,客户至上,我就下个低版本的试一试,果然,报错了"Uncaught SyntaxError: Unexpected token ."这也看不出来具体哪里错了啊。
然后就查看项目代码的吧,之前看到用element UI的时候,有个slot-scope的地方项直接用了scope,我当时有点怀疑这个不是已经被替代为slot-scope?看一下还真可以,在vue 2.5.0+ 中slot-scope替代了 scope,
目版本为"vue": "^2.6.14",应该是现在想想可能有问题吧,改回去了。然后想想会不会还有这个版本不支持双链问题呢?然后就加个babel依赖进行转换,最后果然都好了。
添加依赖:
@babel/plugin-proposal-nullish-coalescing-operator: ^7.18.6
@babel/plugin-proposal-optional-chaining: ^7.20.7
然后在babel.config.js添加
plugins: [
'@babel/plugin-proposal-nullish-coalescing-operator',
'@babel/plugin-proposal-optional-chaining'
]
老项目确实头疼,建议大家直接vue3搭建吧。
长风破浪会有时,直挂云帆济沧海