在微信小程序中使用可选链操作符"?.",使用taro进行转换报错

nfg76nw0  于 5个月前  发布在  其他
关注(0)|答案(7)|浏览(63)

相关平台

微信小程序

小程序基础库: 2.19.4
使用框架: React

复现步骤

在微信小程序中使用可选链操作符?.,使用taro转换报错

期望结果

转换正常

实际结果

转换报错

环境信息

$ taro info
👽 Taro v3.6.6

  Taro CLI 3.6.6 environment info:
    System:
      OS: Windows 10 10.0.19045
    Binaries:
      Node: 16.19.1 - D:\software\DevEco\nodeJs16\node.EXE
      npm: 8.19.3 - D:\software\DevEco\nodeJs16\npm.CMD
    npmPackages:
      @tarojs/cli: 3.6.6 => 3.6.6
      @tarojs/components: 3.6.6 => 3.6.6
      @tarojs/helper: 3.6.6 => 3.6.6
      @tarojs/plugin-framework-react: 3.6.6 => 3.6.6
      @tarojs/plugin-platform-alipay: 3.6.6 => 3.6.6
      @tarojs/plugin-platform-h5: 3.6.6 => 3.6.6
      @tarojs/plugin-platform-jd: 3.6.6 => 3.6.6
      @tarojs/plugin-platform-qq: 3.6.6 => 3.6.6
      @tarojs/plugin-platform-swan: 3.6.6 => 3.6.6
      @tarojs/plugin-platform-tt: 3.6.6 => 3.6.6
      @tarojs/plugin-platform-weapp: 3.6.6 => 3.6.6
      @tarojs/react: 3.6.6 => 3.6.6
      @tarojs/runtime: 3.6.6 => 3.6.6
      @tarojs/shared: 3.6.6 => 3.6.6
      @tarojs/taro: 3.6.6 => 3.6.6
      @tarojs/webpack5-runner: 3.6.6 => 3.6.6
      babel-preset-taro: 3.6.6 => 3.6.6
      eslint-config-taro: 3.6.6 => 3.6.6
      react: ^18.0.0 => 18.2.0
58wvjzkj

58wvjzkj2#

  1. babel的parse底层依赖acorn
  2. optional chaining ?. 特性在acorn 2020-6-30的7.3.0版本才支持 https://github.com/acornjs/acorn/blob/master/acorn/CHANGELOG.md#new-features-10
  3. babel需要升级到7以上,并且babylon替换为babel/types
b5lpy0ml

b5lpy0ml3#

安装@babel/plugin-proposal-optional-chaining依赖,并在babel.config.js plugins中增加配置:
plugins: [ '@babel/plugin-proposal-optional-chaining' ]

6vl6ewon

6vl6ewon4#

安装@babel/plugin-proposal-optional-chaining依赖,并在babel.config.js plugins中增加配置: plugins: [ '@babel/plugin-proposal-optional-chaining' ]

preset-env已经内置这个了吧?

vwhgwdsa

vwhgwdsa5#

我也认为这个应该被内置处理,但我升级到最新版taro后,一直报这个错,添加这个plugins后,解决了这个问题~

nr7wwzry

nr7wwzry6#

楼主提到的是在反向转换功能中不支持可选链语法,这是因为反向转换当年是基于 Babel6 开发的,目前已年久失修。

qnakjoqk

qnakjoqk7#

@codMeing Hello, 我也遇到了 This experimental syntax requires enabling the parser plugin: 'optionalChaining' (1:53222) 的报错,我的场景是分包后有一个子包内部的 subVendors.js 中有可选链的使用,然后触发了报错。但是我已经在应用入口文件中的 babel.config.js 中增加了 @babel/plugin-proposal-optional-chaining 的声明了。所以我有点好奇你的场景中是否有分包呢?

相关问题