我已遵循此处的指南(https://www.gatsbyjs.com/docs/environment-variables/)并设法设置了一个环境变量(MY_ENV_VAR
中的.env.development
)并在任何页面文件中使用了它。但是,我无法在html.js
文件中使用它(与.cache/default-html.js
复制)。 MY_ENV_VAR
中的undefined
始终是html.js
。知道我做错了什么吗?还是有可能?
答案 0 :(得分:0)
正如您在docs that you've provided中所看到的,有一些服务器端环境变量和客户端端环境变量。第一个运行在服务器中,因此它们在所有节点文件(gatsby-node.js
,gatsby-config.js
等)中都可用,第二个运行在浏览器中,并且必须以GATSBY_
为前缀显示在:
除了
.env.*
中定义的这些项目环境变量之外 文件,您还可以定义OS Env Vars。 OS Env Vars是 前缀为GATSBY_
的前缀将在浏览器JavaScript中可用。
在您的情况下,您已经设置了一个服务器端变量,该变量在Node文件中以及浏览器中的undefined
上都可以正常运行。 develop
和build
之间的行为不同,代码的行为方式不同。有关更多详细信息,请检查Overview of build process documentation。