如何阻止@sveltejs/adapter-cloudflare暴露服务器端Sourcemap?
解决Cloudflare Pages上SvelteKit服务器端Sourcemap暴露问题
方案一:完全禁用服务器端Sourcemap生成
修改项目根目录的svelte.config.js,在Vite构建配置中明确关闭服务器端的sourcemap生成:
import adapter from '@sveltejs/adapter-cloudflare'; import { vitePreprocess } from '@sveltejs/kit/vite'; const config = { preprocess: vitePreprocess(), kit: { adapter: adapter(), vite: { build: { sourcemap: { client: true, // 按需保留客户端sourcemap,不需要也可设为false server: false // 关键:禁用服务器端sourcemap } } } } }; export default config;
这样构建时就不会生成_worker.js.map,从根源解决代码暴露问题。
方案二:禁止公开访问Sourcemap文件
如果需要保留sourcemap用于内部调试,可通过路由规则阻止外部访问:
- 在项目根目录创建
_routes.json文件,添加以下配置:
{ "version": 1, "include": ["/*"], "exclude": ["/_worker.js.map"] }
提交该文件到GitHub,下次Cloudflare自动构建后,外部访问_worker.js.map会返回404。
2. 也可直接在Cloudflare Dashboard操作:进入对应Pages项目 → 「设置」→ 「路由规则」→ 添加规则,匹配路径/_worker.js.map,设置行为为「返回403禁止访问」或「返回404未找到」。
关于wrangler.toml设置无效的说明
你之前尝试的upload_source_maps = false是Wrangler CLI部署时的配置,而Cloudflare Pages通过GitHub推送触发的自动构建流程,不会读取项目中的wrangler.toml,因此该配置不生效,需使用上述适配Pages的方案。
内容的提问来源于stack exchange,提问作者matthewr
相关产品推荐
相关产品推荐

