如何在Svelte中配合adapter-static生成Sourcemap?
解决SvelteKit使用adapter-static时构建不生成Sourcemap的问题
问题背景
已在vite.config.js中配置build.sourcemap为true,在svelte.config.js中设置compilerOptions.sourcemap为true,并使用adapter-static适配器,配置如下:
vite.config.js
import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; export default defineConfig({ plugins: [sveltekit()], build: { sourcemap: true } });
svelte.config.js
import adapter from '@sveltejs/adapter-static'; /** @type {import('@sveltejs/kit').Config} */ const config = { kit: { adapter: adapter({ pages: '../app/src/main/resources/static', assets: '../app/src/main/resources/static', fallback: null, precompress: false, strict: true }) }, compilerOptions: { sourcemap: true } }; export default config;
执行npm run build后并未生成Sourcemap,怀疑与使用adapter-static有关。
解决方案
1. 在SvelteKit配置中显式开启构建sourcemap
SvelteKit生产构建默认会禁用sourcemap,即使Vite中配置了build.sourcemap: true也会被覆盖。需要在svelte.config.js的kit.build中显式开启:
/** @type {import('@sveltejs/kit').Config} */ const config = { kit: { adapter: adapter({ /* 你的适配器配置 */ }), build: { sourcemap: true // 新增此配置 } }, compilerOptions: { sourcemap: true } };
2. 确认输出目录的正确性
检查适配器配置的pages和assets目标目录../app/src/main/resources/static,构建完成后该目录下应该会生成对应的.map文件,避免误找其他目录。
3. 验证配置生效逻辑
vite.config.js中的build.sourcemap负责Vite打包阶段的sourcemap生成svelte.config.js的compilerOptions.sourcemap负责Svelte组件编译时的sourcemapkit.build.sourcemap是SvelteKit层面的总开关,控制最终是否输出sourcemap,这是之前缺失的关键配置
完成以上修改后重新执行npm run build,即可生成对应的Sourcemap文件。
内容的提问来源于stack exchange,提问作者Jackie
相关产品推荐
相关产品推荐

