При правильно настроенном проекте у вас будут разные скрипты сборки для разных платформ. Тогда вы можете просто сделать так, чтобы сценарии сборки установили эти переменные где-то для вас.
Вот пример того, как это работает:
declare const IS_DEV_BUILD: boolean; // The value is supplied by Webpack during the build
declare const IS_CORDOVA: boolean; // The value is supplied by Webpack during the build
export async function configure(aurelia: Aurelia) {
if (IS_CORDOVA) {
const cordova = new CordovaEvents();
await cordova.waitForDeviceReady();
}
Переменные такого типа можно установить с помощью веб-пакета DefinePlugin:
new webpack.DefinePlugin({ IS_DEV_BUILD: JSON.stringify(isDevBuild), IS_CORDOVA: JSON.stringify(isCordova) }),
И вы передадите параметры env в cli из скрипта сборки, который идеально определен в package.json (или package-scripts.js, если вы используете nps):
"build": "webpack --mode development --env.cordova",
Концепции похожи, если вы работаете с aurelia-cli
, но я не знаю ни одного примера проекта для cordova, использующего aurelia-cli, к сожалению.