[英]heroku environment variables return undefined
我试图设置一些环境。 Heroku 上的变量,我做到了,我可以在打开 Heroku 仪表板时看到应用程序中的变量。 但是当我尝试从我的应用程序访问变量时,它返回undefined
任何想法?
componentDidMount() {
console.log('this env' , process.env.backEndServer) // undefined
}
检查 Heroku cli:
$ heroku config:get backEndServer // https://myserver.com
您正在尝试访问客户端的环境变量,这是不可能的。
如果要在客户端应用程序中使用环境变量,则需要设置 Webpack 来处理不同的环境。
在 Webpack 配置文件中,您将使用Webpack 的定义插件为每个环境定义全局变量。
另外不要忘记将NODE_ENV
配置变量添加到您的 heroku 应用程序并将其设置为true. So you'll be sure that by accessing
true. So you'll be sure that by accessing
process.ENV.NODE_ENV will force runtime to use
node.js` 环境。
现在您可以按如下方式配置您的生产环境:
/* in webpack.config-prod.js */
...,
plugins: [
new webpack.DefinePlugin({
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
API_HOST: JSON.stringify(process.env.API_HOST)
})
],
...
现在,您可以在客户端应用程序中轻松访问您的环境变量。
如果您查看 Heroku 构建日志,它建议您指定 nodejs 版本。 如果您在 package.json 中指定节点版本,它可能会解决问题。
包.json
{
...
"engines": {
"node": "12.13.1"
},
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.