| import path from 'path'; | |
| import fs from 'fs-extra'; | |
| import minimist from 'minimist'; | |
| import _ from 'lodash'; | |
| const cmdArgs = minimist(process.argv.slice(2)); //获取命令行参数 | |
| const envVars = process.env; //获取环境变量 | |
| class Environment { | |
| /** 命令行参数 */ | |
| cmdArgs: any; | |
| /** 环境变量 */ | |
| envVars: any; | |
| /** 环境名称 */ | |
| env?: string; | |
| /** 服务名称 */ | |
| name?: string; | |
| /** 服务地址 */ | |
| host?: string; | |
| /** 服务端口 */ | |
| port?: number; | |
| /** 包参数 */ | |
| package: any; | |
| constructor(options: any = {}) { | |
| const { cmdArgs, envVars, package: _package } = options; | |
| this.cmdArgs = cmdArgs; | |
| this.envVars = envVars; | |
| this.env = _.defaultTo(cmdArgs.env || envVars.SERVER_ENV, 'dev'); | |
| this.name = cmdArgs.name || envVars.SERVER_NAME || undefined; | |
| this.host = cmdArgs.host || envVars.SERVER_HOST || undefined; | |
| this.port = Number(cmdArgs.port || envVars.SERVER_PORT) ? Number(cmdArgs.port || envVars.SERVER_PORT) : undefined; | |
| this.package = _package; | |
| } | |
| } | |
| export default new Environment({ | |
| cmdArgs, | |
| envVars, | |
| package: JSON.parse(fs.readFileSync(path.join(path.resolve(), "package.json")).toString()) | |
| }); |