js新版语法 可选链操作符( ?. ) 不好使 babel 6 升级 babel 7
可选链操作符( ?.
)允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?.
操作符的功能类似于 .
链式操作符,不同之处在于,在引用为空(nullish ) (null
或者 undefined
) 的情况下不会引起错误,该表达式短路返回值是 undefined
。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined
。
现象:babel编译失败
原因分析: babel版本(6.x)过低
解决方法: 升级babel版本至最新(7.x)
## 步骤一
// 方法一
npx babel-upgrade --write
// 方法二
npm install babel-upgrade -g
babel-upgrade --write
## 步骤二
删除node_modules文件夹
## 步骤三
npm i
## 步骤四
安装其他babel依赖
## 其他问题
问题零. npm i babel-plugin-transform-decorators-legacy -D // 包名不能带引号
问题一. 修饰器及其他编译依赖变化
.babelrc 变化:
package.json 变化:
问题二:
解决: npm i @babel/core
问题三:
原因:package.json 依赖包中既有 babel 7.0 版本,又有 babel 6.0 版本
解决:步骤1. 升级babel相关组件
步骤2. 参照问题一更改.babelrc