一、问题描述
因为项目要在 XP 系统上运行,而 XP 系统可以安装的最新版本的谷歌浏览器是 49 版本,而火狐可以安装最新的是 52 版本。项目在这两个版本运行均报错,而在高版本的浏览器都可以正常运行。
Chrome 49 版本报错信息如下:(Uncaught SyntaxError: Unexpected token ...)
FireFox 52版本报错信息如下:(SyntaxError: invalid property id)
二、问题解决过程
1、尝试通过安装babel-polyfill解决
百度搜索 Uncaught SyntaxError: Unexpected token ... 的报错原因,得到的信息是 babel 编译默认不编译 async/await,没有转化为 ES5,所以低版本浏览器不兼容无法正常解析。
根据提示,尝试安装插件 babel-polyfill,修改配置信息:
npm install babel-polyfill --save
在main.js按以下方式引入,在代码的最顶端引入
require('babel-polyfill');
或
import 'babel-polyfill';
但是经运行测试还是报错,不能解决。所以插件babel-polyfill不能解决我的这个项目的兼容问题,应该是有其它的兼容问题,需要继续定位解决。
2、通过删除不兼容的插件或者降低版本来解决
基础的 vue 项目是可以在 Chrome 49 版本和在 Firefox 52 版本正常运行的,所以怀疑是这个项目引用了不兼容的插件,这个时候得使用 排除法 了,通过报错信息提示,去到对应的文件不断删除排除对比,最终定位到只要删除了 fuse.js 的引用项目就可以正常运行,而删除 fuse.js 的引用通过测试暂时未发现有其它的问题出现,所以,这个兼容问题算是暂时得以解决。
排除法是比较常用的查找错误的方法了,当不能马上定位到问题出在哪里的时候,不妨试试排除法,不断删删删,也许就找出错误来了。
总结:兼容基本都是语法问题,可能是部分插件不适配,降低版本或者干脆不用这个插件可能就行了
就这。