Yasin

Yasin

nextjs 环境变量规则

为什么客户端变量必须以 NEXT_PUBLIC_ 开头?
因为 Next.js 只有显式标记为公开的变量才会在构建时注入到浏览器代码里,避免把服务器机密(如数据库密码)泄露到前端。NEXT_PUBLIC_ 就是“可公开”的白名单前缀。


env 规定总结

文件命名(自动识别):

  • .env
  • .env.local
  • .env.development / .env.production / .env.test
  • 对应的 .local 版本:
    .env.development.local / .env.production.local / .env.test.local

优先级(高覆盖低):
.env.{mode}.local > .env.{mode} > .env.local > .env

变量前缀:

  • NEXT_PUBLIC_*:客户端 + 服务端都可用
  • 其他:仅服务端可用

读取方式:

  • 统一使用 process.env.XXX