Skip to main content

Environment Variables

Setup

Install

yarn add -D dotenv babel-plugin-inline-dotenv

Configure

Add inline-dotenv to your babel.config.js or .babelrc, for example:

// babel.config.js

const plugins = [
[
"@babel/plugin-proposal-decorators",
{
legacy: true,
},
],
["@babel/plugin-proposal-optional-catch-binding"],
"inline-dotenv",
"react-native-reanimated/plugin", // NOTE: this must be last in the plugins
];

const expoConfig = {
presets: ["babel-preset-expo"],
env: {
production: {},
},
plugins,
};

Note: this configuration also works for a bare react-native app

Usage

Create a .env file in the root of your project

MY_VAR="MY_VALUE"
KEEP_IN_MIND="THESE ARE NOT SECURE"

You'll now have access to your values from the .env file

console.log(process.env.MY_VAR); // results in: MY_VALUE
console.log(process.env.KEEP_IN_MIND); // results in: THESE ARE NOT SECURE

If making changes to the environment variables, you'll have to restart your metro server (and possibly clear cache)

Is this page still up to date? Did it work for you?