我正在一个团队中,以Razzle SSR为框架,用React编写一个项目,我的CD流水线设置存在很多问题。通常,当我需要将机密或动态数据传递给容器时,我会使用环境变量,该变量可能会在运行时发生变化。在此特定示例中,我想在运行时将环境特定的API端点字符串传递给我的应用。
我的问题是:在使用React和Razzle的应用程序中做到这一点的最佳方法是什么?在运行时,我可以在应用程序的哪个位置使用环境变量?我了解在Razzle中,任何以'RAZZLE'开头的环境变量都会在构建时由webpack进行字符串化,并且可以在我的应用程序中的任何位置使用。如果我在服务器端调用process.env.FOO
之类的环境变量,则可以在运行时读取并设置它。但是在某些情况下,我的环境变量将返回undefined
:
const apiEndPoint = process.env.CONNECTION_STRING
class SomePage extends React.Component {
constructor(props) {...}
methodThatFetches(encodeURI(apiEndPoint + `/some/${path}`)).then(...) // apiEndPoint == undefined
}
我在哪里可以调用环境变量而不会变得不确定?