svelte - 如何让 sourcemaps 与 svelte-preprocess、typescript、sourced .ts 文件一起使用
问题描述
我正在使用 svelte-preprocess 在我的 Svelte 应用程序中编译打字稿。
这是苗条的文件:
<script lang="ts" src="./component.ts"></script>
<template src="./component.html></template>
<style src="./component.scss"></style>
这是 rollup.config.js 的纤细部分
svelte({
preprocess: sveltePreprocess({
sourceMap: !production,
defaults: {
markup: 'html',
script: 'typescript',
style: 'scss'
}
}),
compilerOptions: {
dev: !production
}
}),
我也在配置文件中有这个
typescript({
sourceMap: !production,
inlineSources: !production
}),
我遇到的问题是component.ts 没有发生源映射。当我在 component.ts 中某处的 Chrome 调试器中出现错误时,它会在 component.svelte 文件的最后一行显示一个行号,而不是 component.ts。
当我在脚本 lang="ts" 标记中内联代码时,它确实可以工作,并且源映射很好。
如何让 svelte-preprocess 使用源映射、打字稿并从 svelte 组件文件中的 .ts 文件获取?
解决方案
使用 3.44.0 版的 Svelte,您可以依靠一个新的编译器选项 ,
enableSourcemap
它可以更好地控制 JavaScript 和 CSS 源映射的编译器输出。
此配置为预处理样式表和 JavaScript 提供源映射。
// svelte.config.js
import adapter from '@sveltejs/adapter-auto';
import preprocess from 'svelte-preprocess';
/** @type {import('@sveltejs/kit').Config} */
const config = {
compilerOptions: {
enableSourcemap: true,
},
preprocess: preprocess({
sourceMap: true,
}),
kit: {
adapter: adapter(),
target: '#svelte',
},
};
export default config;
有关详细信息,请参阅 3.44.0 上的发行说明:https ://svelte.dev/blog/whats-new-in-svelte-november-2021
推荐阅读
- python - 扩展素数列表的 Python 代码
- python - 如何使列表的最后一个元素以点结尾,其他元素以逗号结尾?
- javascript - 从底部css动画中提升(显示)文本
- python - 如何在 QGraphicsView 中制作 2 层?
- c# - DocuSign:更新信封时签名者选项卡丢失
- ruby-on-rails - 捆绑器:不可执行:无论何时使用 gem,rails 生产中的 bin/rails
- php - 使用角度上传视频
- ajax - Ajax 调用总是返回一个空对象
- ssas - “内部错误:发生意外异常。” 在多维模型中过滤具有参差不齐的父子层次结构的简单维度时
- postgresql - Intellij Jpa 控制台数据库架构