我正在使用NextJS和Heroku。
在首页-首次加载返回我在getInitialProps中获取的数据,但在常规函数中,由于缺少环境变量,会出现错误消息。
当我转到另一页时,我会收到相同的错误,但是当我刷新页面时,可以看到在getInitialProps中获取的数据。但同样,在常规函数中,由于缺少环境变量,我会收到错误消息。
在本地它可以工作。 我尝试过dotenv-webpack,但没有帮助。 我在Heroku中添加了配置变量。
有什么想法吗?
这是我的next.config.js文件:
在首页-首次加载返回我在getInitialProps中获取的数据,但在常规函数中,由于缺少环境变量,会出现错误消息。
当我转到另一页时,我会收到相同的错误,但是当我刷新页面时,可以看到在getInitialProps中获取的数据。但同样,在常规函数中,由于缺少环境变量,我会收到错误消息。
在本地它可以工作。 我尝试过dotenv-webpack,但没有帮助。 我在Heroku中添加了配置变量。
有什么想法吗?
这是我的next.config.js文件:
const { parsed: localEnv } = require('dotenv').config()
const webpack = require('webpack')
const Dotenv = require('dotenv-webpack')
const path = require('path')
module.exports = {
//target: 'serverless',
webpack(config) {
config.plugins.push(new webpack.EnvironmentPlugin(localEnv))
config.node = {fs: "empty"};
config.plugins = config.plugins || []
config.plugins = [
...config.plugins,
// Read the .env file
new Dotenv({
path: path.join(__dirname, '.env'),
systemvars: true
})
]
return config
},
publicRuntimeConfig: {
ADDRESS: process.env.ADDRESS,
API_TOKEN: process.env.API_TOKEN,
INFURA_API_KEY: process.env.INFURA_API_KEY
}
}
.env
文件。Heroku 原生支持通过环境变量进行配置。 - Chris