构建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_ENV
是production
当我运行gatsby serve
时-process.env.NODE_ENV
是undefined
如果这可以以任何方式提供帮助。
答案 0 :(得分:1)
如果在节点中使用环境变量,则不需要前缀(例如在gatsby-config.js中)。但是,如果需要在组件或页面中使用它们,则必须添加GATSBY_
作为前缀,因此GEOCODING_CF_URL应该为GATSBY_GEOCODING_CF_URL
答案 1 :(得分:0)
对我来说,NODE_ENV=production yarn gatsby serve
成功了。