Expose environment variables to the runtime config of Next.js
$ yarn add next-runtime-dotenv
This Next.js plugin uses dotenv to expose environment variables to the Next.js runtime configuration.
It requires next@5.1.0
.
This module exposes a function that allows to configure a Next.js plugin.
In your next.config.js
:
const nextRuntimeDotenv = require('next-runtime-dotenv')
const withConfig = nextRuntimeDotenv({
// path: '.env',
public: [
'MY_API_URL'
],
server: [
'GITHUB_TOKEN'
]
})
module.exports = withConfig({
// Your Next.js config.
})
Then in your page, use the configuration values as such:
import getConfig from 'next/config'
const {
publicRuntimeConfig: {MY_API_URL}, // Available both client and server side
serverRuntimeConfig: {GITHUB_TOKEN} // Only available server side
} = getConfig()
function HomePage() {
// Will display the variable on the server’s console
// Will display undefined into the browser’s console
console.log(GITHUB_TOKEN)
return (
<div>
My API URL is {MY_API_URL}
</div>
)
}
export default HomePage
This module is not compatible with serverless deployment as publicRuntimeConfig
and serverRuntimeConfig
from next/config
will not be exposed.
You should use build-time configuration.
This plugin leverages next@5.1.0
and build phases. It exposes a plugin function in order to run the plugin only when running the server (PHASE_DEVELOPMENT_SERVER
and PHASE_PRODUCTION_SERVER
).
MIT
╚⊙ ⊙╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝
╚═(███)═╝