盖茨比:在html.js中设置阅读环境变量

时间:2020-09-21 15:23:38

标签: environment-variables gatsby

我已遵循此处的指南(https://www.gatsbyjs.com/docs/environment-variables/)并设法设置了一个环境变量(MY_ENV_VAR中的.env.development)并在任何页面文件中使用了它。但是,我无法在html.js文件中使用它(与.cache/default-html.js复制)。 MY_ENV_VAR中的undefined始终是html.js。知道我做错了什么吗?还是有可能?

1 个答案:

答案 0 :(得分:0)

正如您在docs that you've provided中所看到的,有一些服务器端环境变量和客户端端环境变量。第一个运行在服务器中,因此它们在所有节点文件(gatsby-node.jsgatsby-config.js等)中都可用,第二个运行在浏览器中,并且必须以GATSBY_为前缀显示在:

除了.env.*中定义的这些项目环境变量之外 文件,您还可以定义OS Env Vars。 OS Env Vars是 前缀为GATSBY_的前缀将在浏览器JavaScript中可用。

在您的情况下,您已经设置了一个服务器端变量,该变量在Node文件中以及浏览器中的undefined上都可以正常运行。 developbuild之间的行为不同,代码的行为方式不同。有关更多详细信息,请检查Overview of build process documentation