https://github.com/gavinning/env
基于环境变量的配置文件管理
https://github.com/gavinning/env
app-env env node-app-env node-env
Last synced: 10 months ago
JSON representation
基于环境变量的配置文件管理
- Host: GitHub
- URL: https://github.com/gavinning/env
- Owner: gavinning
- Created: 2017-05-19T05:11:50.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-03-04T14:59:42.000Z (almost 3 years ago)
- Last Synced: 2025-03-16T09:41:20.862Z (10 months ago)
- Topics: app-env, env, node-app-env, node-env
- Language: TypeScript
- Homepage:
- Size: 136 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
Env
---
环境变量管理
### Install
```sh
npm i @4a/env
yarn add @4a/env
```
### Usage in Nodejs
```js
const { Env } = require('@4a/env')
module.exports = new Env(process.env.NODE_ENV)
```
### Usage in FE
```js
// hostname = 'preview.com'
import Env from '@4a/env'
import fe from '@4a/env/dist/fe'
// 根据hostname发现env
fe.setHostname ({
dev: 'dev.com',
test: 'test.com',
testing: 'test.com',
preview: 'preview.com',
// 支持配置多个域名
production: ['production1.com', 'production2.com'],
})
export default new AppEnv(fe.env)
```
### Example
```js
console.log('app start on', appEnv.env)
appEnv.env // === 'preview'
appEnv.isDev // === false
appEnv.isTest // === false
appEnv.isTesting // === false
appEnv.isPreview // === true
appEnv.isProduction // === false
appEnv.isOnline // === true
appEnv.dev(() => {
console.log('dev message')
})
appEnv.test(() => {
console.log('test message')
})
appEnv.testing(() => {
console.log('testing message')
})
appEnv.preview(() => {
console.log('preview message')
})
appEnv.production(() => {
console.log('production message')
})
appEnv.online(() => {
console.log('online message')
})
appEnv.get({
dev: 'http://dev.com',
test: 'http://test.com',
testing: 'http://test.com',
preview: 'http://preview.com',
production: 'http://production.com',
}) // => 'http://preview.com'
```
### ENV Support
无环境变量访问时,默认环境变量为``production``
```yaml
#
# test和testing推荐只存在一个
# 由于npm test命令被单元测试占用,测试环境比较难达到命名统一
# 为了方便命名统一,推荐使用testing来命名测试环境
# 环境启动命令就可以使用: npm run testing
# 同时也兼容支持test作为环境命名,但不推荐两者同时存在
#
DEV: dev
DEVELOPMENT: development
TEST: test
TESTING: testing
PREVIEW: preview
PRODUCTION: production
```