Может кто-нибудь помочь мне понять этот реактивный файл конфигурации - PullRequest
2 голосов
/ 15 апреля 2020

Может быть, кто-то будет достаточно хорош, чтобы провести меня через этот конфигурационный файл, так как я немного запутался в этой строке module.exports = {default: staging, dev, staging, production}[RELEASE_CHANNEL], почему она говорит, что дважды готовится? и какой из этих трех будет задан по умолчанию?

вот весь файл конфигурации.


import Constants from 'expo-constants'
const RELEASE_CHANNEL = Constants.manifest.releaseChannel || 'production';

const production = {
myURL: 'https://......./api', 
apiURL: 'https://......./user', 
timeout: 3000,};

const dev = {
myURL: 'https://......./api', 
apiURL: 'https://......./user', 
timeout: 3000,};

const staging = {
const production = {
myURL: 'https://......./api', 
apiURL: 'https://......./user', 
timeout: 3000,};
module.exports = {default: staging, dev, staging, production}[RELEASE_CHANNEL]

в другом коде это импортируется следующим образом: * import {myURL} from '../config' однако нет никакой спецификации, по которой используется один из трех различных API.

1 Ответ

1 голос
/ 15 апреля 2020

{default: staging, dev, staging, production} является сокращением для

 {
   'default': staging, 
   'dev': dev, 
   'staging': staging, 
   'production': production
}

Я предполагаю, что RELEASE_CHANNEL будет одним из dev, staging или production в зависимости от среды сборки.

Например, на основе среды сборки, если это было dev - оно преобразуется в

 {
   'default': staging, 
   'dev': dev, 
   'staging': staging, 
   'production': production
}['dev']

. Экспортирует значения в объекте dev, а myUrl будет ссылаться на значение в dev объект

...