svelte-preprocess 不会将 typescript 转换为 javascript
svelte-preprocess does not transform typescript into javascript
我正在尝试在 web worker 中解析 svelte 组件源代码。
完整源代码 here
import { parse , preprocess } from 'svelte/compiler';
import sveltePreprocess from 'svelte-preprocess';
import {
typescript,
scss,
globalStyle,
} from 'svelte-preprocess';
async function parseSvelte(source : string) {
const preprocessedResult = await preprocess( source, [
typescript({}),
scss(),
globalStyle(),
]);
console.log(preprocessedResult);
try {
const ast = parse(preprocessedResult.code);
console.log(ast);
}
catch(e) { console.log(e.toString() )}
}
我正在使用上面的代码解析以下 svelte 组件
<script lang="ts">
const x = (y : string) => {};
</script>
preprocess
应该把打字稿转成 javascript 吧?
但是preprocessedResult.code
还是包含了typescript,后面的parse
失败了。
Unexpected token (3:25)
1:
2: <script lang="ts">
3: const x = (y : string) => {};
^
4: </script>
调用preprocess
方法没有报错,请问这里是什么问题?
svelte-preprocess/src/transformers/typescript.ts 第 497 行的问题
if (filename == null) return { code: content };
当您在没有“可选”文件名的情况下调用 svelte.preprocess 时,typescript 预处理器不执行任何操作。
使用第三个参数调用预处理以修复问题:
svelte.preprocess(code, processors, { filename: '/path/to/Component.svelte' })
^^^^^^^^
(甚至不必是有效的文件名)
我已经报告了错误 https://github.com/sveltejs/svelte-preprocess/issues/488
我正在尝试在 web worker 中解析 svelte 组件源代码。 完整源代码 here
import { parse , preprocess } from 'svelte/compiler';
import sveltePreprocess from 'svelte-preprocess';
import {
typescript,
scss,
globalStyle,
} from 'svelte-preprocess';
async function parseSvelte(source : string) {
const preprocessedResult = await preprocess( source, [
typescript({}),
scss(),
globalStyle(),
]);
console.log(preprocessedResult);
try {
const ast = parse(preprocessedResult.code);
console.log(ast);
}
catch(e) { console.log(e.toString() )}
}
我正在使用上面的代码解析以下 svelte 组件
<script lang="ts">
const x = (y : string) => {};
</script>
preprocess
应该把打字稿转成 javascript 吧?
但是preprocessedResult.code
还是包含了typescript,后面的parse
失败了。
Unexpected token (3:25)
1:
2: <script lang="ts">
3: const x = (y : string) => {};
^
4: </script>
调用preprocess
方法没有报错,请问这里是什么问题?
svelte-preprocess/src/transformers/typescript.ts 第 497 行的问题
if (filename == null) return { code: content };
当您在没有“可选”文件名的情况下调用 svelte.preprocess 时,typescript 预处理器不执行任何操作。
使用第三个参数调用预处理以修复问题:
svelte.preprocess(code, processors, { filename: '/path/to/Component.svelte' })
^^^^^^^^
(甚至不必是有效的文件名)
我已经报告了错误 https://github.com/sveltejs/svelte-preprocess/issues/488