我无法在nextjs中动态访问环境变量。在里面 .env.local
我有:
NEXT_PUBLIC_TEST=test
在里面 _app.tsx
我有:
const test = "NEXT_PUBLIC_TEST";
console.log(process.env.NEXT_PUBLIC_TEST); // = 'test'
console.log(process.env[test]); // = undefined
我在create react应用程序中尝试了相同的方法:
# .env
const test = 'REACT_APP_TEST'
console.log(process.env.REACT_APP_TEST) // = 'test'
console.log(process.env[test]) // = 'test'
有人知道为什么nextjs不允许这样做,以及如何覆盖它吗?我知道 next.config.js
是一件事,但我想用 .env
.
1条答案
按热度按时间bbuxkriu1#
根据官方文件:
注意:为了确保仅服务器机密的安全,next.js替换
process.env.*
在构建时使用正确的值。这意味着process.env
不是标准的javascript对象。因此,您试图做的只有在开发模式下才可能,在服务器端代码中也是如此。
您可以手动创建Map公开环境常量的对象,并使用它而不是
process.env
如果您确实想使用动态值。以下是一个例子: