You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SvelteKit 1.0环境变量使用求助:Netlify无服务器函数配置失败

解决方案

先明确你的代码场景,分两种情况处理:

情况1:db-helper是Netlify独立无服务器函数(放在netlify/functions/目录下)

  • 本地开发:
    • 无需安装dotenv,也不用手动引入
    • 必须用netlify dev命令启动项目,不能直接用svelte-kit dev——Netlify CLI会自动加载项目根目录.env文件里的变量
    • 函数内直接用process.env.MONGODB_DATABASE获取变量,不需要加VITE前缀
  • 部署到Netlify:
    • 登录Netlify控制台,进入你的站点,在「Site settings > Environment variables」里添加所有环境变量(包括敏感项)
    • 函数内依然用process.env.MONGODB_DATABASE读取

情况2:db-helper是SvelteKit服务器端代码(比如src/lib/server/下的工具文件或API路由)

  • 本地开发:
    • 敏感变量放在项目根目录的.env文件(记得把.env加入.gitignore,避免提交到仓库),变量名不要加VITE前缀
    • 用svelte-kit dev启动项目即可,SvelteKit会自动把.env里的变量注入到process.env中
    • 代码里直接用process.env.MONGODB_DATABASE获取
  • 部署到Netlify:
    • 在Netlify控制台添加环境变量,无需前缀
    • 服务器端代码依然用process.env.MONGODB_DATABASE读取

你之前操作的问题点

  • 手动引入dotenv:完全没必要,不管是Netlify函数还是SvelteKit服务器端,都不需要手动加载dotenv
  • 使用import.meta.env:这是Vite给前端代码用的,服务器端/Netlify函数是Node环境,只能用process.env
  • 加VITE前缀:VITE前缀的变量会被暴露给浏览器,敏感变量绝对不能加这个前缀;而且服务器端也不需要这个前缀来读取变量

内容的提问来源于stack exchange,提问作者Pick Avana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 08:01:01