为什么 Next.js 中未定义解构环境变量?

Ste*_*lin 8 javascript environment-variables node.js next.js

在我的 Next.js 应用程序中,我创建了一个.env包含名为 的变量的文件API_KEY

解构该值会产生undefined,如下所示:

const { API_KEY } = process.env; // = undefined
const key = process.env.API_KEY; // = 'value'
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下为什么process.env这里没有填充正确的值吗?

Ber*_*rgi 10

来自文档

\n
\n

注意:为了确保仅服务器机密的安全,Next.jsprocess.env.*在构建时替换为正确的值。这意味着这process.env不是标准的 JavaScript 对象,因此您\xe2\x80\x99 无法使用对象解构。

\n
\n

对于客户端 React 组件

\n
\n

由于NEXT_PUBLIC_前缀,该值将内联到发送到浏览器的 JavaScript 中。这种内联发生在构建时,因此NEXT_PUBLIC_需要在构建项目时设置各种环境。

\n
\n