Node.js 环境变量动态获取和静态获取的区别

Node.js 环境变量动态获取和静态获取的区别

Node.js 环境 vs 浏览器环境
  • process.env.SERVICE_PORTAL:

    • 适用环境:Node.js 环境。
    • 用途:访问操作系统的环境变量。
  • import.meta.env.SERVICE_PORTAL:

    • 适用环境:浏览器环境,特别是在使用 Vite 等现代构建工具时。
    • 用途:从构建过程中注入环境变量到浏览器环境中。
构建时注入
  • process.env.SERVICE_PORTAL:

    • 设置方式:环境变量是在运行 Node.js 应用程序之前设置的,通常通过命令行参数或环境配置文件。
    • 动态性:环境变量在运行时动态获取,不能在运行时修改。
  • import.meta.env.SERVICE_PORTAL:

    • 设置方式 :环境变量是在构建过程中从环境文件(如 .env 文件)中注入的。
    • 静态性:在应用程序构建时被静态地注入到代码中,不能在运行时修改。
可静态提取 vs 不可静态提取
  • process.env.SERVICE_PORTAL:

    • 静态性:存储的值是在运行时动态获取的,无法在构建时进行静态分析或提取。
  • import.meta.env.SERVICE_PORTAL:

    • 静态性 :一些构建工具能够静态提取 import.meta.env 中的值,使得它们可以在构建时进行优化或者提取出来。这些值可以在构建期间进行优化和变换。

总结

在 Node.js 环境中,使用 process.env 可以访问操作系统的环境变量,而在浏览器环境中,特别是使用 Vite 等现代构建工具时,可以使用 import.meta.env 来从构建过程中注入环境变量。两者在设置方式、动态性和静态性上都有所不同,需要根据具体环境和需求选择合适的方式来使用环境变量。

相关推荐
cpolar技术支持1 小时前
第三方平台回调总说收不到?把本机 Webhook 收单页跑通,用 cpolar 固定二级子域名给对面看实时请求
node.js·内网穿透·webhook·cpolar·回调对接
damoluomu6 小时前
Node.js CMS 的官网和仓库,22 个一次收齐(五)
node.js
Flynt17 小时前
Deno 官宣一年后停更:我把它的招牌特性在 Node 26 和 Bun 里挨个找了一遍
node.js·deno·bun
孟陬1 天前
Node.js 中 `\b` 的作用
node.js·bun
小小荧1 天前
🚀 Node.js 之父离开 Deno,带着整个团队加入了 Cloudflare
前端·node.js
damoluomu1 天前
Directus 换掉 GPL 之后,Node.js CMS 到底怎么选?(四)
node.js
前端一小卒1 天前
搜索 API 额度用完返回空数组,Agent 就开始一本正经地胡说
前端·javascript·node.js
濮水大叔2 天前
Cabloy 双引擎架构详解:Vona 与 Zova 是如何协作的
typescript·node.js·全栈
LRL_2 天前
跨平台 Node 模块安装指南:如何利用 pnpm/npm 配置`supportedArchitectures` 锁定平台依赖
前端·npm·node.js