我正试图根据我的工作分支在.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。。。等等,因为不建议将生产数据与分期付款混合使用。