Cloudflare Pages部署SvelteKit应用环境变量未填充问题求助
Cloudflare Pages部署SvelteKit应用读取环境变量问题
我在Cloudflare Pages上部署的SvelteKit Web应用无法正常读取环境变量,本地运行时使用SvelteKit的'$env/static/public'语法可正常工作,但该问题仅出现在Cloudflare Pages环境中。
当前Cloudflare构建系统已设置为版本2(最新版),我已通过仪表盘路径Workers & Pages > MyWebApp > Settings > Environment Variables添加了环境变量。
尝试过的环境变量命名前缀
- 以
PUBLIC_为前缀的环境变量 - 以
VITE_为前缀的环境变量
代码中的尝试方案
import { PUBLIC_VAR } from '$env/static/public':报错Error[39m: Module "$env/static/public" has no exported member 'PUBLIC_VAR'import.meta.env.PUBLIC_VAR(搭配PUBLIC_前缀):构建无错误,但环境变量未填充值process.env.VAR:构建无错误,但环境变量未填充值platform.env.VAR:报错ReferenceError [Error]: platform is not defined- 在
wrangler.toml文件的[vars]部分添加环境变量:构建过程中可见变量,但搭配'$env/static/public'使用仍报错
尝试过的构建命令
vite buildnpx svelte-kit sync && npx vite buildnpx svelte-kit sync && npx svelte-check && vite build
更新
我发现将.env文件加入构建源码后可成功构建,但存在以下问题:
- 不仅会生成TypeScript定义,还会使用
.env文件中的环境变量值,而非Cloudflare仪表盘中设置的对应变量 - 仅命名为
.env或.env.production的文件有效,.env.prod无效
内容的提问来源于stack exchange,提问作者Magick
相关产品推荐
相关产品推荐

