SvelteKit执行npm run build时环境变量导出失败求助
解决SvelteKit构建时PUBLIC_API_URL未导出的问题
检查环境变量文件
- 确保项目根目录(与
package.json同级)存在.env或.env.production文件,文件内正确定义变量:
变量名必须以PUBLIC_API_URL=https://your-api-domain.comPUBLIC_开头,SvelteKit仅会暴露带该前缀的环境变量给客户端代码。
验证文件位置与命名
- 环境变量文件不能放在
src或其他子目录,必须在项目根目录。 - 文件名需准确:生产构建默认加载
.env.production,若使用自定义名称需在构建命令中指定,无.env.production时会 fallback 到.env。
清除缓存并重装依赖
- 执行以下命令清理缓存与依赖,避免缓存导致的变量未加载:
rm -rf node_modules rm package-lock.json npm cache clean --force npm install - 重新执行构建:
npm run build
检查SvelteKit版本兼容性
$env/static/public语法在SvelteKit 1.0+版本引入,若版本过低,升级到最新稳定版:npm install @sveltejs/kit@latest svelte@latest
确认导入语法正确
- 组件内的导入语句必须为:
注意路径不能写错,比如不能写成import { PUBLIC_API_URL } from '$env/static/public';$env/public。
检查构建时环境变量加载
- 在服务器终端先手动输出变量确认是否生效:
若输出为空,需确保构建进程能读取到变量——可临时通过echo $PUBLIC_API_URLexport PUBLIC_API_URL=xxx设置,或配置服务器全局环境变量。
内容的提问来源于stack exchange,提问作者Ntdi
相关产品推荐
相关产品推荐

