如何在netlify.toml config中插入环境变量

时间:2018-06-11 12:14:41

标签: netlify

我想根据环境代理不同的api - 我已经尝试了以下主题的一些变化而没有任何运气。如果可能的话,这样做的正确方法是什么?

[build.environment]
  API_URI="https://dev-api.foo.com/:splat"

[context.production.environment]
  API_URI="https://prod-api.foo.com/:splat"

[[redirects]]
  from = "/api/*"
  to = "$API_URI"
  status = 200
  force = true

这不起作用。

虽然上面的配置在我将URI硬编码到to字段时有效,但是当我尝试插入env var时,它就失败了。

3 个答案:

答案 0 :(得分:3)

不支持它,但是Netlify在其文档(https://www.netlify.com/docs/netlify-toml-reference)中建议了一种解决方法:

  

直接在您的计算机中将环境变量用作值($ VARIABLENAME)   不支持netlify.toml文件。但是,以下工作流程   可用于基于环境变量替换值   文件,假设您仅尝试更改标头或重定向。的   在构建之前已读取文件的其余部分-但这些部分是   在构建过程之后阅读。

     
      
  1. 添加一个占位符,例如   netlify.toml中某处的API_KEY_PLACEHOLDER重定向或标头   部分。
  2.   
  3. 创建一个构建环境变量,例如API_KEY,   具有所需的值。您可以在toml文件或我们的用户界面中执行此操作   在配置的“构建和部署设置”部分中。您   可能会使用后者将敏感值排除在存储库之外。
  4.   
  5. 将这样的命令添加到构建命令中:sed -i   s / API_KEY_PLACEHOLDER / $ API_KEY / g netlify.toml &&常规构建命令。
  6.   

答案 1 :(得分:0)

回答我自己的问题 - 它不受支持,你必须自己手动插入env变种作为Netlify构建的一部分。

答案 2 :(得分:0)

是的。这是可能的。这是详细的文档:https://www.netlify.com/docs/continuous-deployment/#deploy-contexts

就我而言,我需要为生产部门和所有其他分支机构分别设置REACT_APP_API_URL。这是我用的:

[context.production.environment]
  REACT_APP_API_URL = "https://api.test.im"

[context.deploy-preview.environment]
  REACT_APP_API_URL = "https://api-staging.test.im"

[context.branch-deploy.environment]
  REACT_APP_API_URL = "https://api-staging.test.im"
相关问题