相关平台
React Native
使用框架: React
复现步骤
- 原项目升级Taro版本到3.5.8
- 壳项目升级到0.68或0.69分支
期望结果
app正常运行
实际结果
编译异常
环境信息
Taro CLI 3.5.8 environment info:
System:
OS: Linux 6.0 Ubuntu 18.04.6 LTS (Bionic Beaver)
Shell: 4.4.20 - /bin/bash
Binaries:
Node: 16.16.0 - ~/.nvm/versions/node/v16.16.0/bin/node
Yarn: 1.22.19 - ~/.nvm/versions/node/v16.16.0/bin/yarn
npm: 8.11.0 - ~/.nvm/versions/node/v16.16.0/bin/npm
npmPackages:
@tarojs/cli: 3.5.8 => 3.5.8
@tarojs/components: 3.5.8 => 3.5.8
@tarojs/mini-runner: 3.5.8 => 3.5.8
@tarojs/plugin-framework-react: 3.5.8 => 3.5.8
@tarojs/react: 3.5.8 => 3.5.8
@tarojs/rn-runner: 3.5.8 => 3.5.8
@tarojs/runtime: 3.5.8 => 3.5.8
@tarojs/taro: 3.5.8 => 3.5.8
@tarojs/taro-rn: 3.5.8 => 3.5.8
@tarojs/webpack-runner: 3.5.8 => 3.5.8
babel-preset-taro: 3.5.8 => 3.5.8
eslint-config-taro: 3.5.8 => 3.5.8
react: ^18.2.0 => 18.2.0
react-native: ^0.70.6 => 0.70.6
补充信息
AndroidSdk 31
目前,下载依赖后直接修改暂时的解决办法是修改源代码node_modules/expo-camera/build/ExponentCameraManager.js
// import { NativeModulesProxy } from 'expo-modules-core';
// const CameraManager = NativeModulesProxy.ExponentCameraManager || NativeModulesProxy.ExponentCameraModule;
// export default CameraManager;
export default {
Type: {},
AutoFocus: {},
FlashMode: {},
WhiteBalance: {},
};
//# sourceMappingURL=ExponentCameraManager.js.map
前提是代码中不能使用 Camera
组件。
另一个问题是 viewPropTypes
引用问题,现象是报 viewPropTypes
需要从 deprecated-react-native-props
中引用,原因是 taro
引用了旧版本的 react-native-maps
暂时的解决办法是在 package.json
中添加 resolutions
,内容为 "react-native-maps": "^1.3.2"
3条答案
按热度按时间xu3bshqb1#
这问题特别出现于分离的模式下,在集成模式下暂时没有发现这问题。
l7mqbcuq2#
这问题的根源可能是
react-native
的link
出了问题,当依赖中存在一个包的多个版本时这问题就会出现。项目复杂的时候使用的一些第三方组件基本上都会有问题。ipakzgxi3#
第一个问题并没有解决。
分离模式下问题很多。几乎是无解的状态。但这问题的根源应该是项目中引用了多个版本的npm库引起的。因为几乎全是第三方的模块,也不大好直接修改。我建议taro的rn模块中去掉全部直接依赖原生模块,而改为
peerDependencies
.这个问题出现的概率会降低。