vue-cli4.5+使用es6的?.和??语法,出现报错Module parse failed: Unexpected token

运行vue-cli搭建的老项目,安装依赖发现跑不起来了,一看是原先的?.和??语法报错Module parse failed: Unexpected token

先说去github找到的解决方案

vue-cli根目录有.browserslistrc文件,在其末尾添加一行IE 11

去github找到的原因

https://github.com/vuejs/vue-cli/issues/7209
在这里插入图片描述
这是因为 browserslist 前两天发布的新版本 4.21 里把 IE 11 列入了 dead 名单 https://github.com/browserslist/browserslist/blob/4.21.0/CHANGELOG.md#421
所以默认的 “not dead” 条件会把它排除在外。

而不包含 IE 11 的、满足 “> 1%, not dead, last 2 versions” 的所有浏览器,都支持最新的语法标准,所以 @babel/preset-env 不再需要转译 ??。

至于这个 issue 里出现的报错,则是因为项目的依赖版本比较老,除了 Babel 以外,其他的工具比如 webpack 4 是不支持新语法的,所以如果 Babel 不再把代码转换好再输出给它们,它们就会报无法解析的错误。

猜你喜欢

转载自blog.csdn.net/qq_42611074/article/details/142941177