如何有条件地导入节点模块?

问题描述 投票:0回答:1

我有一个使用以下平台的 React Native 项目:Web、IOS、Android、Windows、MacO。

如果我的 React Native 版本低于 0.70.0,我有两个软件包不允许 Android 构建。我无法升级我的 RN 版本。

具体来说,这些包是:react-native-worklets-core和react-native-vision-camera。

为了继续开发,我将上述模块的假版本复制到我的 node_modules 文件夹中,但这显然是一个糟糕的方法,并且不是我可以保留在我的项目中的东西。

这是我的 package.json 文件中的代码,供您参考以帮助理解我的问题:

"replace-vision-camera": "rm -rf ./node_modules/react-native-vision-camera && cp -R ./fake_modules/react-native-vision-camera ./node_modules/react-native-vision-camera",
"replace-worklets-core": "rm -rf ./node_modules/react-native-worklets-core && cp -R ./fake_modules/react-native-worklets-core ./node_modules/react-native-worklets-core"

所以我的问题是,如果没有这些包,我该如何构建android?它会在我的 Metro 配置文件中吗?

reactjs react-native node-modules metro-bundler
1个回答
0
投票

解决方案是在你的 RN 项目的顶层添加一个react-native.config.js,你可以禁用 android 上依赖 foo 的自动链接,内容如下:

module.exports = {
  dependencies: {
    "foo": {
      platforms: {
        android: null,
      }
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.