安装方式:npm install --save yenv
首先在一个 yaml 文件里定义环境设置:
# Development-specific settings.
development:
PORT: 3000
DROP_DATABASE: true
# Production-specific settings.
production:
PORT: 80
DROP_DATABASE: false
如何解析上述文件?
const yenv = require('yenv')
// Default filename is env.yaml.
const env = yenv()
// You can call it with a filename, too.
const env = yenv('env.yaml')
// The top-level element in the YAML-file is used to
// read the correct set of variables. The value is grabbed
// from `process.env.NODE_ENV`. To explicitly specify it, use:
const env = yenv('env.yaml', { env: 'production' })
console.log(env.PORT)
console.log(env.DROP_DATABASE)
- 9
- 10
- 11
- 12
- 13
- 14
- 15
Environment variables
在环境中定义变量时,它将优先于 yaml 文件中定义的任何内容。 这意味着,如果您的托管服务提供商(Heroku、Azure 等等)设置了 PORT 变量,那么这就是将要使用的变量。
您可以通过在 envObject 选项中传递一个空对象来禁用此行为。
const env = yenv('env.yaml', { envObject: {} })
- 1
敏感配置应该始终在实际环境变量中定义,而不是提交给源代码控制!