1.18.6 • Published 11 months 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
11 months ago
1.18.0
11 months ago
1.18.5
11 months ago
1.18.4
11 months ago
1.18.3
11 months ago
1.18.2
11 months ago
1.18.6
11 months ago
1.17.2
12 months ago
1.17.1
12 months ago
1.17.0
1 year ago
1.16.1
1 year ago
1.16.0
1 year ago
1.15.1
1 year ago
1.15.0
1 year ago
1.13.4
1 year ago
1.13.3
1 year ago
1.13.2
1 year ago
1.13.1
1 year ago
1.13.0
1 year ago
1.12.0
1 year ago
1.11.3
1 year ago
1.11.2
1 year ago
1.11.1
1 year ago
1.11.0
1 year ago
1.10.0
1 year ago
1.9.0
1 year ago
1.8.2
1 year ago
1.8.1
1 year ago
1.8.0
1 year ago
1.7.0
1 year ago
1.6.0
1 year ago
1.4.0
1 year ago
1.3.0
1 year ago
1.2.0
1 year ago
1.1.0
1 year ago