std-env
运行时无关的 JS 工具
运行时无关的 JS 工具
安装
# Using npm
npm i std-env
# Using pnpm
pnpm i std-env
# Using yarn
yarn add std-env
用法
// ESM
import { env, isDevelopment, isProduction } from "std-env";
// CommonJS
const { env, isDevelopment, isProduction } = require("std-env");
特性标志
hasTTY
hasWindow
isDebug
isDevelopment
isLinux
isMacOS
isMinimal
isProduction
isTest
isWindows
platform
isColorSupported
nodeVersion
nodeMajorVersion
您可以从https://raw.githubusercontent.com/unjs/std-env/main/src/flags.ts阅读更多关于每个特性标志如何工作的信息。
提供商检测
std-env
可以根据环境变量自动检测当前的运行时提供商。
您可以使用isCI
和platform
导出进行检测
import { isCI, provider, providerInfo } from "std-env";
console.log({
isCI, // true
provider, // "github_actions"
providerInfo, // { name: "github_actions", isCI: true }
});
可以在https://raw.githubusercontent.com/unjs/std-env/main/src/providers.ts找到已知提供商的列表。
运行时检测
std-env
可以根据全局变量自动检测当前的JavaScript运行时,遵循WinterCG 运行时键提案
import { runtime, runtimeInfo } from "std-env";
// "" | "node" | "deno" | "bun" | "workerd" ...
console.log(runtime);
// { name: "node" }
console.log(runtimeInfo);
您也可以使用单独的命名导出进行每个运行时检测
当在Bun和Deno中使用Node.js兼容模式运行代码时,
isNode
特性标志也将为true
,表示在Node.js兼容的运行时中运行。如果您需要严格检查Node.js运行时,请使用runtime === "node"
。isNode
isBun
isDeno
isNetlify
isEdgeLight
isWorkerd
isFastly
可以在https://raw.githubusercontent.com/unjs/std-env/main/src/runtimes.ts找到已知运行时的列表。
平台无关的env
std-env
提供了一个轻量级代理,以平台无关的方式访问环境变量。
import { env } from "std-env";
平台无关的process
std-env
提供了一个轻量级代理,以平台无关的方式访问process
对象。
import { process } from "std-env";
许可
MIT