std-env

中文文档
4.3.0发布于 2026/09/29MITTypeScriptES Module零依赖近 30 天下载 5.6亿

与运行时无关的JS utils

中文使用文档
文档目录6 节
  1. 运行时检测
  2. 供应商检测
  3. 剂检测
  4. 旗帜
  5. 环境
  6. 许可证

std-env

npm version npm downloads bundle size

与运行时无关的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";
出口描述
hasTTYstdout TTY可用
hasWindow全球 window 是可用的
isCI在CI中运行
isColorSupported支持终端颜色输出
isDebugDEBUG 设置环境变量
isDevelopmentNODE_ENV 是 dev/development 或 MODE 是 development
isLinuxLinux平台
isMacOSmacOS (darwin)平台
isMinimalMINIMAL env设置为CI、test或不设置TTY
isProductionNODE_ENV 或 MODE 是 production
isTestNODE_ENV 是 test 或 TEST Env设置好了
isWindowsWindows平台
platform的价值 process.platform
nodeVersionNode.js版本字符串(例如: "22.0.0")
nodeMajorVersionNode.js主要版本号(例如: 22)

看到 / src / flags.ts 获取详细信息。

环境

出口描述
env通用 process.env (适用于所有运行时)
process通用 process Shim(适用于所有运行时)
nodeENV当前的 NODE_ENV 值(如果未设置则未定义)

许可证

麻省理工学院

版本与发布记录

std-env 共发布 41 个版本,首次发布于 2018/03/31;过去 12 个月发布了 5 个版本。

版本发布日期距今
4.3.0latest2026/09/291 个月前
4.2.02026/07/083 个月前
4.1.02026/04/156 个月前
4.0.02026/03/107 个月前
4.0.0-rc.12026/02/188 个月前
3.10.02025/10/141.1 年前

关于 std-env 的常见问题

std-env 是什么?

与运行时无关的JS utils

如何安装 std-env?

在项目目录运行 npm install std-env,或使用 pnpm add / yarn add / bun add。

std-env 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

std-env 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

std-env 可以商用吗?

std-env 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

std-env 的下载量有多少?

根据 npm 官方下载统计,std-env 在 2026/10/05 – 2026/11/03 这 30 天内被下载 557,753,602 次,日均约 18,591,787 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

std-env 还在维护吗?

最新版本 4.3.0 发布于 2026/09/29(1 个月前);至今共发布 41 个版本,其中过去 12 个月发布了 5 个;首次发布于 2018/03/31。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。