1

I have to set node environment variables using cross-env in package.json but the values are in a .env file.

I've tried the following formats but none has worked.

cross-env API_KEY=%API_KEY% && ...
cross-env API_KEY=$API_KEY && ...
cross-env %API_KEY% && ...
webflood
  • 11
  • 1
  • 1
  • 2
  • Sounds like you should be using [env-cmd](https://github.com/toddbluhm/env-cmd) instead – Phil Mar 23 '22 at 03:18

1 Answers1

8

cross-env is used to set environment variables inline when running node commands.

cross-env NODE_ENV=production webpack --config build/webpack.config.js

However when populating environment variables from .env files you'll need to use dotenv or similar.

It's common to have a separate .env file for each environment (.env.development, .env.production...). To configure this with dotenv you need to run dotenv.config at the root of your project, to pick the right .env file.

dotenv.config({
    path: path.resolve(__dirname, `${process.env.NODE_ENV}.env`)
});
j-petty
  • 2,668
  • 1
  • 11
  • 20