Gatsby .env。生产变量-未定义

时间:2020-02-10 09:12:37

标签: environment-variables gatsby

构建Gatsby项目时,我在env环境中获得了所有undefined变量production。 在development中一切正常。 我有2个类似的.env.development.env.production文件。

我的gatsby-config.js中有

require('dotenv').config({
  path: `.env.${process.env.NODE_ENV}`,
});

,如果我在console.log(process.env.NODE_ENV)期间gatsby build给出production,则可以访问和注销变量。 但是稍后在代码中类似

return request.post(`${process.env.GEOCODING_CF_URL}/latlng`, {...});

请求http://localhost:9000/ru/undefined/latlng

我做错了什么以及如何解决此问题?

更新:

当我运行gatsby build时-process.env.NODE_ENVproduction

当我运行gatsby serve时-process.env.NODE_ENVundefined

如果这可以以任何方式提供帮助。

2 个答案:

答案 0 :(得分:1)

如果在节点中使用环境变量,则不需要前缀(例如在gatsby-config.js中)。但是,如果需要在组件或页面中使用它们,则必须添加GATSBY_作为前缀,因此GEOCODING_CF_URL应该为GATSBY_GEOCODING_CF_URL

答案 1 :(得分:0)

对我来说,NODE_ENV=production yarn gatsby serve 成功了。