Node.js 环境变量未定义

Node.js environment variables undefined

我正在尝试使用环境变量,但是当我使用文件和 运行 服务器时,我只得到 PORT 变量,而我的所有其他变量都未定义。我正在使用 nodemon。

.env

PORT=3000
SENDGRID_API_KEY=sometext

package.json

"scripts": {
    "start": "node src/index.js",
    "dev": "env-cmd -f ./config/dev.env nodemon src/index.js"
  }

index.js

const port = process.env.PORT
const apiKey = process.env.SENDGRID_API_KEY
app.listen(port, () => {  
    console.log('Server is up on port '+port)
    console.log(apiKey)
})

尝试使用dotenv npm


import * as dotenv from 'dotenv'

dotenv.config(); 
export class Constants { 

  process.env.<YOUR_VARIABLE_NAME>

}

如果你使用 -f 而不是它不会关心环境 -e,请使用其中之一。

"env-cmd nodemon src/index.js"

.rc file ./.env-cmdrc

{
  "development": {
    "ENV1": "Thanks",
    "ENV2": "For All"
  },
  "test": {
    "ENV1": "No Thanks",
    "ENV3": "!"
  },
  "production": {
    "ENV1": "The Fish"
  }
}

// 命令:

env-cmd -e production nodemon index.js

检查: https://github.com/toddbluhm/env-cmd