std-env
与运行时无关的JS实用程序,用于检测环境、运行时、CI提供程序和AI编码代理。
运行时检测
方法后的全局变量检测当前JavaScript运行时 winterg运行时密钥建议。
import { runtime, runtimeInfo } from "std-env";
console.log(runtime); // "" | "node" | "deno" | "bun" | "workerd" ...
console.log(runtimeInfo); // { name: "node" }
单个命名导出: isNode, isBun, isDeno, isNetlify, isEdgeLight, isWorkerd, isFastly, isNub
[!请注意)
isNode也true在Bun/Deno中使用Node.js兼容模式。使用runtime === "node"进行严格的检查。
isNub检测 要点,它增强了Node.js,而不是取代它。它是加性的:isNode也true和runtime保持"node"。
看到 / src / runtimes.ts 查看完整列表。
供应商检测
基于环境变量检测当前的CI/CD提供程序。
import { isCI, provider, providerInfo } from "std-env";
console.log({ isCI, provider, providerInfo });
// { isCI: true, provider: "github_actions", providerInfo: { name: "github_actions", ci: true } }
使用 detectProvider() 重新运行检测。看到 / src / providers.ts 查看完整列表。
剂检测
检测环境是否在AI编码代理中运行。
import { isAgent, agent, agentInfo } from "std-env";
console.log({ isAgent, agent, agentInfo });
// { isAgent: true, agent: "claude", agentInfo: { name: "claude" } }
设置 AI_AGENT Env var显式指定代理名称。GitHub副驾驶的别名 github_copilot_vscode_agent 和 github_copilot_cloud_agent 归一化为 copilot. 使用 detectAgent() 重新运行检测。
支持代理: cursor, claude, copilot, devin, replit, gemini, codex, auggie, opencode, kiro, goose, pi, junie
旗帜
import { env, isDevelopment, isProduction } from "std-env";
| 出口 | 描述 |
|---|---|
hasTTY | stdout TTY可用 |
hasWindow | 全球 window 是可用的 |
isCI | 在CI中运行 |
isColorSupported | 支持终端颜色输出 |
isDebug | DEBUG 设置环境变量 |
isDevelopment | NODE_ENV 是 dev/development 或 MODE 是 development |
isLinux | Linux平台 |
isMacOS | macOS (darwin)平台 |
isMinimal | MINIMAL env设置为CI、test或不设置TTY |
isProduction | NODE_ENV 或 MODE 是 production |
isTest | NODE_ENV 是 test 或 TEST Env设置好了 |
isWindows | Windows平台 |
platform | 的价值 process.platform |
nodeVersion | Node.js版本字符串(例如: "22.0.0") |
nodeMajorVersion | Node.js主要版本号(例如: 22) |
看到 / src / flags.ts 获取详细信息。
环境
| 出口 | 描述 |
|---|---|
env | 通用 process.env (适用于所有运行时) |
process | 通用 process Shim(适用于所有运行时) |
nodeENV | 当前的 NODE_ENV 值(如果未设置则未定义) |
许可证
麻省理工学院