.env文件中的If-else语句



我正试图根据我的工作分支在.env文件中动态设置URL。是否可以在.env文件中使用If Else语句?我还想从windows环境变量中读取ENV变量。

无论如何,我正在使用一个react应用程序。以下是我尝试过但没有成功的:

ENV = 'develop'
REACT_APP_BASE_URL = ''    
if(ENV == 'develop'){
REACT_APP_BASE_URL = 'https://api.dev.myurl.com'
}else if(ENV == 'staging'){
REACT_APP_BASE_URL = 'https://api.staging.myurl.com'
}else if(ENV == 'production'){
REACT_APP_BASE_URL = 'https://api.pro.myurl.com'
}

Нi Dev.Rafiq,

为此,我个人求助于效用函数。

示例,/utils/url.ts:

export const isProduction = process.env.NODE_ENV === 'production'
export const isDevelopment = process.env.NODE_ENV === 'development'
export const isStaging = process.env.NODE_ENV === 'staging'
export const websiteUrl = isProduction
? 'https://api.pro.myurl.com'
: isDevelopment
? 'https://api.dev.myurl.com'
: 'https://api.staging.myurl.com'

您可以简单地使用websiteURL,而不是使用REACT_APP_BASE_URL环境变量。

您可能会从将这些变量导出到其他地方中受益。

示例:如果您希望仅在暂存中呈现特定元素,则可以重用isStaging作为isStaging && <MyElement/>

在扩展应用程序时,这种方法也可能是有益的,通常会将不同的API密钥用于不同的目的,如Google Analytics、reCAPTCHA。。。等等,因为不建议将生产数据与分期付款混合使用。

最新更新