在构建中加载环境变量的最佳方法是什么
What is the best way to load environment variables in your build
对于我正在处理的项目,我正在设置一个 BitBucket 管道。除了环境变量外,一切都很好。我的环境变量的用途之一是 API_URL。我正在使用 process.env.API_URL
加载 url。这在本地效果很好,因为它使用 dotenv-webpack
加载 .env 文件。但是,在管道中,我不知道加载这些变量的最佳方法是什么。我应该将所有变量添加到 Bitbucket 并为管道文件中的每个变量添加 export API_URL=$API_URL
还是有更好的方法来加载变量?
Workspace、Repository 和 Deployment 变量是必经之路。您需要哪一个取决于您希望这些变量涵盖的范围(命名很漂亮 self-explanatory:一些变量不应该在整个帐户中更改它们的值;其他变量只对特定的存储库有意义;最后,一些值特定于部署环境)。
只需在 Bitbucket UI 或使用 API 中定义变量,然后从 bitbucket-pipelines.yml
或您从中调用的任何脚本中引用它们的值。您不需要添加任何 export
语句。
这是一个非常好的文档,解释了细节 - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/ - 并且 User-defined variables
部分与你的问题特别相关。
或者,如果您提交了 .env
文件,您可以根据 this Whosebug 答案一次性导出所有内容。
显然,如果它包含任何敏感值,请不要提交 .env
。
我认为这取决于您使用什么来为您的应用程序提供服务,并且在构建阶段 npm build
创建一个具有 env 值的静态工件。
因此,如果使用 nginx 将值替换为环境变量,则可以使用 nginx subfilter。
此外,您可以按照此处所述设置环境 - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/
对于我正在处理的项目,我正在设置一个 BitBucket 管道。除了环境变量外,一切都很好。我的环境变量的用途之一是 API_URL。我正在使用 process.env.API_URL
加载 url。这在本地效果很好,因为它使用 dotenv-webpack
加载 .env 文件。但是,在管道中,我不知道加载这些变量的最佳方法是什么。我应该将所有变量添加到 Bitbucket 并为管道文件中的每个变量添加 export API_URL=$API_URL
还是有更好的方法来加载变量?
Workspace、Repository 和 Deployment 变量是必经之路。您需要哪一个取决于您希望这些变量涵盖的范围(命名很漂亮 self-explanatory:一些变量不应该在整个帐户中更改它们的值;其他变量只对特定的存储库有意义;最后,一些值特定于部署环境)。
只需在 Bitbucket UI 或使用 API 中定义变量,然后从 bitbucket-pipelines.yml
或您从中调用的任何脚本中引用它们的值。您不需要添加任何 export
语句。
这是一个非常好的文档,解释了细节 - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/ - 并且 User-defined variables
部分与你的问题特别相关。
或者,如果您提交了 .env
文件,您可以根据 this Whosebug 答案一次性导出所有内容。
显然,如果它包含任何敏感值,请不要提交 .env
。
我认为这取决于您使用什么来为您的应用程序提供服务,并且在构建阶段 npm build
创建一个具有 env 值的静态工件。
因此,如果使用 nginx 将值替换为环境变量,则可以使用 nginx subfilter。
此外,您可以按照此处所述设置环境 - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/