TypeScript无法解析子目录模块且编译结果不一致问题求助
问题排查与解决方案
1. 修复dist目录无编译输出问题
你当前tsconfig.json的compilerOptions中配置了"noEmit": true,该配置会直接禁止TS编译器输出任何编译后的.js、.d.ts文件,这是dist目录下没有生成Array.js的核心原因。
你之前
Array.ts相关功能可以正常运行,大概率是使用了ts-node、Vite这类支持直接运行TS源码的工具,绕开了TS的编译输出流程,所以noEmit配置不会影响运行阶段。
如果需要输出编译结果到dist目录,操作如下:
- 删除
"noEmit": true配置项 - 新增输出目录和源码根目录配置:
如果你后续还要纳入其他目录的TS文件,可以将"outDir": "./slices/dist", "rootDir": "./slices"rootDir调整为你的项目根路径。
2. 修复arrayGenerator模块无法解析问题
你当前的include配置仅包含src目录,TS编译器只会识别该目录下的TS文件,如果你的slices目录不在src文件夹内,自然无法识别slices下的模块。
操作如下:
- 修改
include配置,纳入slices目录下的所有TS文件:"include": ["src/**/*", "slices/**/*"] - 检查
Sorting.ts中引用arrayGenerator.ts的路径写法:
正确的相对路径应为import xxx from './bricks/arrayGenerator',不要漏写开头的./,也不要出现大小写错误(你的配置开启了forceConsistentCasingInFileNames,路径大小写不匹配会直接报错)。
3. 生效验证
修改完配置后重启IDE的TS语言服务,再执行编译命令,确认dist目录生成了对应.js文件后,运行项目验证模块引用是否正常。
内容的提问来源于stack exchange,提问作者MISO
相关产品推荐
相关产品推荐

