Недавно Expo выпустила новую функцию, которая делает управление ENV намного проще, используя то, что они называют динамическим файлом конфигурации приложения.
*Вот как настроить переменные env для различных окружений в Expo:
*
- Создайте файл app.config.js в корне вашего репозитория.
- Наполните файл, он должен выглядеть примерно так:
import ‘dotenv/config’;
export default {
name: 'APP_NAME',
version: '1.0.0',
extra: {
environment: 'dev'
},
};
- Вызовите переменную. Теперь, когда мы запускаем наше приложение, мы можем получить доступ к переменной окружения, сделав следующее:
import Constants from 'expo-constants';
export default function App(props) {
console.log("props.environment: ", props.environment)
}
App.defaultProps = {
environment: Constants.manifest.extra.environment,
};
- Настройте разные переменные для производства и локальной разработки. Для этого нам нужно изменить сценарий развертывания, чтобы вручную добавить переменную, описывающую окружение.
Я помещаю свою переменную в Dockerfile, который Google Cloud использует для сборки моего приложения:
RUN ENVIRONMENT=prod expo build:web
Но вы можете добавить ENVIRONMENT=prod везде, где вы собираете свое приложение.
- Обновите app.config.js, чтобы сделать переменные динамическими в зависимости от окружения.
import 'dotenv/config';
if (process.env.ENVIRONMENT === 'prod') {
export default {
name: 'APP_NAME',
version: '1.0.0',
extra: {
environment: 'prod'
},
};
} else {
export default {
name: 'APP_NAME',
version: '1.0.0',
extra: {
environment: 'dev'
},
};
}
Здесь мы проверяем переменную ENVIRONMENT, а затем можем обновить дополнительные переменные в зависимости от того, где мы используем наше приложение. Когда мы развернем наше приложение, оно будет использовать переменные, определенные в верхнем разделе.