升级壳项目及Taro版本问题3

xuo3flqw  于 2023-02-04  发布在  其他
关注(0)|答案(3)|浏览(232)

相关平台

React Native

使用框架: React

复现步骤

  1. 原项目升级Taro版本到3.5.8
  2. 壳项目升级到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"

xu3bshqb

xu3bshqb1#

这问题特别出现于分离的模式下,在集成模式下暂时没有发现这问题。

l7mqbcuq

l7mqbcuq2#

这问题的根源可能是 react-nativelink 出了问题,当依赖中存在一个包的多个版本时这问题就会出现。项目复杂的时候使用的一些第三方组件基本上都会有问题。

ipakzgxi

ipakzgxi3#

第一个问题并没有解决。
分离模式下问题很多。几乎是无解的状态。但这问题的根源应该是项目中引用了多个版本的npm库引起的。因为几乎全是第三方的模块,也不大好直接修改。我建议taro的rn模块中去掉全部直接依赖原生模块,而改为 peerDependencies .这个问题出现的概率会降低。

相关问题