Есть ли способ удаления кода, специфичного для платформы, в реактивной версии перед компиляцией? - PullRequest
0 голосов
/ 24 октября 2019

В проекте, над которым я работаю, используются разные целевые платформы, для работы которых требуется специальный код. В настоящее время у нас есть файл настроек, который записывается во время компиляции, и этот файл устанавливает некоторые переменные, по которым мы запускаем определенный код или нет.

Однако весь специфичный для платформы код присутствует во всех сборках, и теперьнам нужно найти способ удаления любого кода с другой платформы, поэтому мы сохраним пакет меньше.

Я подумал о чем-то похожем на директивы прагмы в C / C ++, предположим, что это может выглядеть так:

// Code runs fully locally for debugging:

/* REMOVE FOR ANDROID { */
/* REMOVE FOR IOS { */
if (target === 'ios') {
/* } */
  doThis();
/* REMOVE FOR IOS { */
}
/* } */
/* } */

/* REMOVE FOR IOS { */
/* REMOVE FOR ANDROID { */
if (target === 'android') {
/* } */
  doThat();
/* REMOVE FOR ANDROID { */
}
/* } */
/* } */

Таким образом, конечный результат будет:

doThis();

или

doThat();

Есть ли что-нибудь подобное, что может решить эту проблему для нас? Где я могу начать искать?

...