我正在开发一个 React Native 项目,我们需要构建两种不同风格的应用程序,它们基本相同,但在一些小功能上有所不同。我想看看是否有办法通过 babel 以某种方式做到这一点,通过为每个构建具有类似命名的不同文件并通过设置和环境变量触发不同的构建。这类似于 React Native 为 iOS 和 Android 提供自定义 js 文件的方式,如下所示:
my-component.android.js
my-component.ios.js
所以我不同的构建风格看起来像这样:
my-component.flavourA.js
my-component.flavourB.js
甚至
my-component.flavourA.android.js
my-component.flavourB.android.js
my-component.flavourA.ios.js
my-component.flavourB.ios.js
我正在尝试找到一种使用 babel 更改 require() 函数(和 import 语句)的方法,以便从简单的 require 调用中解析正确的文件:
require('./my-component');
取决于设置的FLAVOR环境变量。或者:
import * from './my-component';
我已经考虑过尝试使用 , 的组合,babel-plugin-module-resolver
但是如果不编写自己的 babel 插件,我就无法解决这个问题。babel-plugin-replace-require
babel-preprocessor
有没有更简单的方法可以实现我所缺少的?