.env 文件变量是否会向 Nextjs 中的用户公开?

Yih*_*uan 2 web-applications next.js dotenv

我正在使用 构建一个网络应用程序nextjs。我添加了一些依赖项,例如MuxFirestore。为了以有组织的方式存储 api_keys 和其他内容,我创建了.env文件并将其放在根目录中。

.env我检查了in的规则nextjs。这是参考:https://medium.com/courtly-intrepid/environmental-variables-in-next-js-with-dotenv-599c5bbfdf74。我NEXT_PUBLIC为变量添加了前缀,然后它们就成功解析了。

然而,在检查了nextjs官方文档https://nextjs.org/docs/basic-features/environment-variables后,它说变量将暴露给browser我对浏览器感到困惑。这是否意味着如果用户使用他/她的浏览器来使用我的应用程序,我的环境变量也会暴露给他/她?

我在想一件事,如果我将所有需要 dotenv 的代码放入后端,我可以使这些变量不提供给用户吗?对于当前版本,我在组件中使用了 dotenv,我认为这可能会导致前端用户看到变量? 需要 dotenv 的组件中代码的屏幕截图

PS:我是新来的。我没有足够的声誉来直接显示您的屏幕截图。而是使用链接。

小智 5

我建议您使用NEXT_PUBLIC前缀,但如果您希望变量与前端保持 100% 隔离,您可以这样做:

创建并.env归档:

TOKEN = 45354354353
Run Code Online (Sandbox Code Playgroud)

next.config.js文件:

module.exports = {
  env: {
    TOKEN: process.env.TOKEN,
  },
};
Run Code Online (Sandbox Code Playgroud)