📅  最后修改于: 2023-12-03 14:58:59.436000             🧑  作者: Mango
在使用 Rollup 构建 TypeScript 项目时,出现了 TS2307 错误,提示找不到 'App.svelte' 模块或其对应的类型声明。该错误的具体位置在项目根目录下的 'src/main.ts' 文件第一行第 17 个字符位置,这表示代码在导入 'App.svelte' 模块时发生了错误。
这个错误提示主要有以下几个可能的原因:
首先,我们需要检查 'App.svelte' 文件是否存在于正确的路径下,并且是否正确导出了模块。
在 Svelte 中,我们需要使用 export default
导出组件,否则 Rollup 在编译时会无法识别该组件。因此,确保 'App.svelte' 中有正确的导出,例如:
<script>
// your code here
</script>
<style>
/* your styles here */
</style>
<main>
<!-- your markup here -->
</main>
<script>
export default App;
</script>
并且确认该文件的路径是否正确,并且在 'src/main.ts' 中正确地导入了它,例如:
import App from './App.svelte';
// your code here
如果在检查 'App.svelte' 文件后仍然出现错误,可能是因为 TypeScript 的编译配置中没有设置对 '.svelte' 文件的支持。
在 TypeScript 的配置文件(例如,tsconfig.json)中添加以下内容,以告诉 TypeScript 编译器识别 '.svelte' 文件:
{
"compilerOptions": {
"module": "esnext",
"target": "es5",
"moduleResolution": "node",
"esModuleInterop": true,
"resolveJsonModule": true,
"allowJs": true,
"jsx": "react",
"sourceMap": true,
"declaration": true,
"noImplicitAny": false,
"strictNullChecks": true,
"allowSyntheticDefaultImports": true,
"lib": ["es2015", "dom"],
"types": ["node", "svelte"],
"typeRoots": ["node_modules/@types", "src/types"]
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules"
]
}
此配置中,我们通过以下代码将 Svelte 类型添加到项目中:
"types": ["node", "svelte"]
要使上述更新生效,请重新运行 Rollup。