1.18.6 • Published 2 years ago
zhi-env v1.18.6
zhi-env
a cross-platform env config lib
Usage
For simple use
import { Env } from "zhi-env"
const env = new Env({
"some-key": "some-value",
})
const val = env.getEnv("some-key")
console.log("val=>", val)
For vite
import { Env } from "zhi-env"
const env = new Env(import.meta.env)
const val = env.getEnv("some-key")
console.log("val=>", val)
For Nuxt
framework
// https://github.com/vitejs/vite/issues/9539#issuecomment-1206301266
import { Env } from "zhi-env"
const nuxtEnv = useRuntimeConfig()
const env = new Env(nuxtEnv)
// 访问公共变量
// const env = new Env(nuxtEnv.public)
const val = env.getEnv("some-key")
console.log("val=>", val)
For Astro framework or other libs
import { Env } from "zhi-env"
// 1 add "module": "esnext" to tsconfig.json
// add "target": "esnext" to tsconfig.json
// 2 add env.d.ts
// ```
// interface ImportMeta {
// readonly env: ImportMetaEnv
// }
// ```
// 3 (optional) if you are using esbuild, add define to esbuild.
// ```
// const defineEnv = {
// NODE_ENV: isProduction ? "production" : "development",
// ...getNormalizedEnvDefines(["NODE", "VITE_"]),
// }
// bundledEsbuildConfig.define = {}
// bundledEsbuildConfig.define = {
// ...bundledEsbuildConfig.define,
// "import.meta.env": JSON.stringify(defineEnv),
// }
// ```
const envMeta = import.meta.env
const env = new Env(import.meta.env)
const val = env.getEnv("some-key")
console.log("val=>", val)
For unit tests
- vitestrecommend
// simple
describe("zhiEnv", () => {
it("test env", () => {
const env = new Env(import.meta.env)
expect(env.getEnv(EnvConstants.NODE_ENV_KEY)).toEqual("test")
})
})
- jest
import { getNormalizedEnvDefines } from "../../../packages/esbuild-config-custom/esmUtils"
describe("zhiEnv", () => {
const NOT_EXIST_KEY = "NOT_EXIST_KEY"
getNormalizedEnvDefines(["NODE", "VITE_"])
it("test env", () => {
const env = new Env(import.meta.env)
expect(env.getEnv(EnvConstants.NODE_ENV_KEY)).toEqual("test")
})
it("test debug mode", () => {
const env = new Env(import.meta.env)
expect(env.getEnv(EnvConstants.VITE_DEBUG_MODE_KEY)).toEqual("true")
})
})
Deps
## Congregations! zhi-env need no deps, it is just pure js code 🎉
Dev
pnpm dev -F zhi-env
Build
pnpm build -F zhi-env
Api
pnpm doc -F zhi-env
pnpm md -F zhi-env
Test
Execute the unit tests via vitest
pnpm test -F zhi-env
Publish
pnpm publish -F zhi-env --tag latest
1.18.1
2 years ago
1.18.0
2 years ago
1.18.5
2 years ago
1.18.4
2 years ago
1.18.3
2 years ago
1.18.2
2 years ago
1.18.6
2 years ago
1.17.2
2 years ago
1.17.1
2 years ago
1.17.0
2 years ago
1.16.1
2 years ago
1.16.0
2 years ago
1.15.1
2 years ago
1.15.0
2 years ago
1.13.4
2 years ago
1.13.3
2 years ago
1.13.2
2 years ago
1.13.1
2 years ago
1.13.0
2 years ago
1.12.0
2 years ago
1.11.3
2 years ago
1.11.2
2 years ago
1.11.1
2 years ago
1.11.0
2 years ago
1.10.0
2 years ago
1.9.0
2 years ago
1.8.2
2 years ago
1.8.1
2 years ago
1.8.0
2 years ago
1.7.0
2 years ago
1.6.0
2 years ago
1.4.0
2 years ago
1.3.0
2 years ago
1.2.0
2 years ago
1.1.0
2 years ago