TypeScript设置baseUrl后子目录文件导入模块找不到是什么原因?
问题根因
- 你项目根目录的
tsconfig.json中exclude配置项明确包含了"src/**/*.stories.tsx"规则,所有.stories.tsx后缀的文件都会被TypeScript排除在解析范围外,自然无法识别基于baseUrl: "src"声明的绝对导入路径。而src/components/Menu.tsx不属于被排除的文件范畴,所以相同的导入规则可以正常生效。
解决方案
- 首先修改
tsconfig.json的exclude配置,移除"src/**/*.stories.tsx"条目。如果需要避免打包时引入story文件,可以在构建工具(webpack/vite/rollup等)的构建规则里单独配置排除逻辑,不要放在TS配置的exclude字段中,避免影响路径与类型解析。 - 如果你使用的是Storybook工具来管理组件示例,还需要同步在
.storybook目录下的配置文件(通常是.storybook/tsconfig.json或.storybook/main.js)中配置和主项目一致的baseUrl与路径规则,保证Storybook自身的编译流程可以正确识别绝对导入路径。
内容的提问来源于stack exchange,提问作者bigpotato
相关产品推荐
相关产品推荐

