信息发布→ 登录 注册 退出

Nextjs 公共变量

发布时间:2024-10-23

点击量:

nextjs 公共变量

next.js 因其对环境变量的处理而受到臭名昭著的批评。虽然多年来它已经得到了改进,但它仍然存在一些可能令人困惑的怪癖,特别是当涉及到通过 process.env 对象公开的公共变量时。

所有 next_public_ 前缀的变量都是客户端可访问的,但正如官方文档中提到的,它们仅在构建时可用,因此与 docker 一起使用时无法在运行时更改。

虽然我过去已经讨论过这个问题,但我发现了另一种可能有趣的探索方法,即使用可以在运行时更改的全局共享变量。

设置 polyfill

next.js 部分支持全局变量,但我们可以通过一个小的注入脚本使用 polyfill 来使它们可用。

// app/layout.tsx
<script
  dangerouslysetinnerhtml={{
    __html: `!function(t){function e(){var e=this||self;e.globalthis=e,delete t.prototype._t_}"object"!=typeof globalthis&&(this?e():(t.defineproperty(t.prototype,"_t_",{configurable:!0,get:e}),_t_))}(object);`,
  }}
/>
标签:
在线客服
服务热线

服务热线

13331157271

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

微信号:

(点击微信号复制,添加好友)

打开微信

微信号已复制,请打开微信添加咨询详情!