Динамически запрашивать / импортировать различные компоненты компонентов в React Native в зависимости от конфигурации сборки

Я работаю над проектом React Native, в котором нам нужно будет создать два разных варианта приложения, которые в основном одинаковы, но отличаются небольшим количеством функций. Я хотел посмотреть, есть ли способ как-то сделать это с помощью babel, используя разные файлы с одинаковыми именами для каждой сборки и вызывая разные сборки с помощью настроек и переменных среды. Это было бы похоже на то, как это делает React Native для создания пользовательских js-файлов для iOS и Android, например:

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-plugin-replace-require а также babel-preprocessor но я не могу решить, если это вообще возможно, без написания собственного плагина babel.

Есть ли более простой способ добиться этого, которого мне не хватает?

0 ответов

Другие вопросы по тегам