Logo of std-env

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可以根据环境变量自动检测当前的运行时提供商。

您可以使用isCIplatform导出进行检测

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