taro
taro copied to clipboard
小程序 对 ?. 这个语法不支持上传,是否可以转换为兼容语法
相关平台
微信小程序
小程序基础库: 3.6.0 使用框架: React
复现步骤
上传或者预览,需要开启小程序的转为es5才能上传
期望结果
1
实际结果
2
环境信息
Taro CLI 4.0.5 environment info:
System:
OS: macOS 14.5
Shell: 5.9 - /bin/zsh
Binaries:
Node: 22.8.0 - /var/folders/rf/gd60z12164z72bny7z_0d4f80000gn/T/yarn--1728971425342-0.8806788027825954/node
Yarn: 1.22.22 - /var/folders/rf/gd60z12164z72bny7z_0d4f80000gn/T/yarn--1728971425342-0.8806788027825954/yarn
npm: 10.8.2 - ~/.nvm/versions/node/v22.8.0/bin/npm
npmPackages:
@tarojs/cli: 4.0.5 => 4.0.5
@tarojs/components: 4.0.5 => 4.0.5
@tarojs/helper: 4.0.5 => 4.0.5
@tarojs/plugin-framework-react: 4.0.5 => 4.0.5
@tarojs/plugin-platform-alipay: 4.0.5 => 4.0.5
@tarojs/plugin-platform-h5: 4.0.5 => 4.0.5
@tarojs/plugin-platform-jd: 4.0.5 => 4.0.5
@tarojs/plugin-platform-qq: 4.0.5 => 4.0.5
@tarojs/plugin-platform-swan: 4.0.5 => 4.0.5
@tarojs/plugin-platform-tt: 4.0.5 => 4.0.5
@tarojs/plugin-platform-weapp: 4.0.5 => 4.0.5
@tarojs/react: 4.0.5 => 4.0.5
@tarojs/rn-runner: 4.0.5 => 4.0.5
@tarojs/rn-supporter: 4.0.5 => 4.0.5
@tarojs/runtime: 4.0.5 => 4.0.5
@tarojs/shared: 4.0.5 => 4.0.5
@tarojs/taro: 4.0.5 => 4.0.5
@tarojs/taro-loader: 4.0.5 => 4.0.5
@tarojs/taro-rn: 4.0.5 => 4.0.5
@tarojs/webpack5-runner: 4.0.5 => 4.0.5
babel-preset-taro: 4.0.5 => 4.0.5
eslint-config-taro: 4.0.5 => 4.0.5
expo: ~51.0.32 => 51.0.37
react: ^18.2.0 => 18.3.1
react-native: ~0.75.3 => 0.75.4
开启转为es5会使得代码变大非常多,很容易就传不上去
不知道你是不是遇到的类似这个问题,不需要开启转为 es5 的。可以用 babel-loader 转一下。
在 config/index.ts 配置 mini webpackChain loader 如下代码,试试。
// config/index.ts
const config = {
mini: {
webpackChain(chain, webpack) {
chain.merge({
module: {
rule: [
{
test: /.js$/,
loader: 'babel-loader',
},
],
},
});
}
}
}
不知道你是不是遇到的类似这个问题,不需要开启转为
es5的。可以用babel-loader转一下。 在config/index.ts配置mini webpackChain loader如下代码,试试。// config/index.ts const config = { mini: { webpackChain(chain, webpack) { chain.merge({ module: { rule: [ { test: /.js$/, loader: 'babel-loader', }, ], }, }); } } }
应该就是转换的问题,我是从3.6升级到4.0的,之前的版本是没有问题的,我是觉得这个问题应该在框架内部弄好的
框架本身也是不断迭代的,框架内部也不能面面俱到,做得很完美。所以开放配置,可以由开发者自行配置。
应该是跟着Taro4更新了这个配置导致的
"browserslist": [
"defaults and fully supports es6-module",
"maintained node versions"
]
编译成H5的,里面会包含?? / ?. 这种语法,也会语法错误。
可参考:https://docs.taro.zone/docs/h5#%E5%B0%86%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%E4%B8%BA-es5 进行配置