Javascript 为什么分解next.js环境变量会导致未定义?
我已经创建了一个带有api_密钥的.env文件 在分解值时Javascript 为什么分解next.js环境变量会导致未定义?,javascript,node.js,environment-variables,next.js,Javascript,Node.js,Environment Variables,Next.js,我已经创建了一个带有api_密钥的.env文件 在分解值时 const { api_key } = process.env; // = undefined const key = process.env.api_key; // = value 有人能解释一下吗?来自: 注意:为了确保仅服务器机密的安全,Next.js在生成时用正确的值替换process.env.*。这意味着process.env不是标准的JavaScript对象,因此您无法使用对象分解 以及客户端组件 由于NEXT\u PUB
const { api_key } = process.env; // = undefined
const key = process.env.api_key; // = value
有人能解释一下吗?来自:
注意:为了确保仅服务器机密的安全,Next.js在生成时用正确的值替换process.env.*
。这意味着process.env
不是标准的JavaScript对象,因此您无法使用对象分解
以及客户端组件
由于NEXT\u PUBLIC\u
前缀,该值将内联到发送到浏览器的JavaScript中。此内联发生在构建时,因此在构建项目时需要设置各种NEXT\u PUBLIC\uu
env
请删除
{}
,然后重试<代码>{}用于存在多个imports@HimanshuSaxena这并不能解释为什么节点结果是未定义的。这是es6的用法-使用解构和其他方法可以处理其他所有事情。您能展示您尝试过的实际代码吗?我是说你用了一些console.log,对吧?或者,您如何知道api_密钥未定义?你能举一个简单的例子来证明这一点吗?这两条线应该是一样的。你到底是如何运行这个脚本的?在什么环境下?如何加载.env
文件?您使用的是transpiler/build管道吗?@Bergi我使用的是Next.js。我的console.log在我的react组件中。