Hello I have an env var like the following in the nuxt.config.js
env: {
BAR: process.env.BAR
}
The problem is that I need to load from os env var instead of .env
file so I tried to use NUXT_ENV_ like this:
I load the env var with
export NUXT_ENV_BAR='value'
1 Try
env: {
BAR: process.env.NUXT_ENV_BAR
}
....
console.log(process.env.BAR)
....
2 Try
....
env: {
NUXT_ENVBAR: process.env.NUXT_ENV_BAR
}
console.log(process.env.NUXT_ENVBAR)
....
I tried the same with publicRuntimeConfig
instead of env
, but didn't work too.
How can I set os env var inside nuxt.js app?
Thanks
CodePudding user response:
When you set an object in JSON the format is key
: value
. You can not use =
.
So your code should be:
env: {
BAR: process.env.BAR
}
To manage your custom Nuxt env you can use https://github.com/nuxt-community/dotenv-module dotenv
module or publicRuntimeConfig
as you said.
If you want to use the 'publicRuntimeConfig' attribute in your nuxt.config.js
file just implement this code:
publicRuntimeConfig: {
BAR: 'yourValue',
}
Then you can access this config data with $config
as $config.BAR
. (To test your config in your browser just write __NUXT__.config
in the console tab)
CodePudding user response:
You could create a file e.g. serverVariables.js
with the server variables that you want to define at the location of your choice in your project.
export default {
BAR: process.env.BAR || '<your default value>',
};
Next, inside your nuxt.config.js
, you could import those variables at the very top like;
import serverVariables from '~/serverVariables';
Next you could map those variables to your publicRuntimeConfig
like;
publicRuntimeConfig: {
BAR: serverVariables.BAR,
}
You could then access it anywhere in your components like;
$config.BAR