svelte:无法识别导入的typescript文件

svelte:无法识别导入的typescript文件,typescript,rollup,svelte-3,Typescript,Rollup,Svelte 3,所以 我正在尝试使用Rollup构建一个带有Svelte和Typescript的应用程序,当我尝试构建Svelte组件时,我似乎无法让它编译包含在.Svelte组件中的.ts文件 我不断地发现这个错误: [!] Error: Unexpected token (Note that you need plugins to import files that are not JavaScript) src/ui/pages/files-page/utils/mapPaths.ts (1:12) 1:

所以

我正在尝试使用Rollup构建一个带有Svelte和Typescript的应用程序,当我尝试构建Svelte组件时,我似乎无法让它编译包含在
.Svelte
组件中的
.ts
文件

我不断地发现这个错误:

[!] Error: Unexpected token (Note that you need plugins to import files that are not JavaScript)
src/ui/pages/files-page/utils/mapPaths.ts (1:12)
1: import type { PathMapping } from '~/types/path.d';
               ^
这是我的
文件页.svelte
,其中包括
映射路径.ts
文件:

import type { PathMapping } from '~/types/path.d';

export default (paths: string[]): PathMapping => {
  const mapping = paths.reduce(
    (m, path) => {
      const root = path.replace(/_\d+$/, '');
      m.set(root, (m.get(root) || 0) + 1);
      return m;
    },
    new Map() as Map<string, number>
  );

  return Array.from(mapping.entries());
};

从“~/ui/layouts/file list/FileList.svelte”导入文件列表;
从“/utils/mapPaths”导入映射路径;
导出let路径:字符串[]=[];
$:mappedPaths=mapPaths(路径);
和我的
mapPaths.ts
文件:

import type { PathMapping } from '~/types/path.d';

export default (paths: string[]): PathMapping => {
  const mapping = paths.reduce(
    (m, path) => {
      const root = path.replace(/_\d+$/, '');
      m.set(root, (m.get(root) || 0) + 1);
      return m;
    },
    new Map() as Map<string, number>
  );

  return Array.from(mapping.entries());
};
为了更好地衡量我的
tsconfig.json

{
“扩展”:“@tsconfig/svelte/tsconfig.json”,
“包括”:[
“src/***”
],
“排除”:[
“节点\u模块/*”
],
“编译器选项”:{
“严格”:是的,
“noImplicitAny”:没错,
“esModuleInterop”:正确,
“skipLibCheck”:正确,
“ForceConsistentCasingFileNames”:true,
“模块”:“es2020”,
“moduleResolution”:“节点”,
“baseUrl”:“,
“路径”:{
"~/*": [
“src/*”
]
}
}
}
我一直在玩弄插件的顺序,但都没用。它们应尽我所知按建议的顺序排列(除了可能的
alias


非常感谢您的帮助,因为我对拒绝工作的构建有点疯狂。

我遇到了同样的问题。这似乎是一个复杂的错误,但这里是什么解决了它为我。说:

现在的快速修复方法是手动将rootDir编译器选项设置为 “src”

因此,我在rollup.config.js中的typescript插件中的ts编译器选项中添加了这个标志(当然,我的源目录也称为src,您可以更改它以适应您的目录结构):

插件:[
...
打字稿({
...
rootDir:“./src”,
}),
...
],

不幸的是,我不能保证它也会为你工作,因为它是一个快速修复。更新的问题也是一个选项。

对于那些感兴趣的人,我在这里发布了这个问题:它似乎在抱怨
导入类型的语法。是否将其替换为从'~/types/path.d'导入{PathMapping}修复问题?该语法是有效的Typescript(如果您只想输入该文件导出的类型,建议使用该语法),因此当它抛出错误时,意味着Typescript无法工作,因此不更改语法不是解决方案。很遗憾,谢谢您的回答。我已经放弃了汇总配置,只是坚持使用webpack。我也不确定更新Typescript是否有效,因为它可以与webpack一起使用。不过,当我有机会的时候,我会更多地研究它。谢谢。我会检查你的答案,当我可以,但我不确定这是我搜索。谢谢。它为我解决了这个问题。(苗条:3.37.0,上卷:2.45.2)。