NX Monorepo引入compile模块触发TS6059错误求助
NX Monorepo TS6059错误排查问题
问题背景
- NX monorepo中仅
compile包触发TS6059错误,其余包过往及当前构建均正常 compile模块自身构建无异常,dist目录文件正常,但其他模块引入该模块时触发报错- 已检查
compile包的index.ts导入/导出配置,未发现明显错误,但肯定存在遗漏细节
报错信息
执行nx build api命令时的报错如下:
compiling TypeScript files for project "backend-assembly"... libs/backend/assembly/src/assembly.module.ts:1:31 - error TS6059: File 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/index.ts' is not under 'rootDir' 'libs/backend/assembly'. 'rootDir' is expected to contain all source files. The file is in the program because: Imported via '@badman/backend-compile' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/assembly/src/assembly.module.ts' Imported via '@badman/backend-compile' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/assembly/src/controllers/assembly.controller.ts' 1 import { CompileModule } from '@badman/backend-compile'; ~~~~~~~~~~~~~~~~~~~~~~~~~ libs/backend/assembly/src/controllers/assembly.controller.ts:1:32 1 import { CompileService } from '@badman/backend-compile'; ~~~~~~~~~~~~~~~~~~~~~~~~~ File is included via import here. libs/backend/compile/src/compile.module.ts:5:39 - error TS6059: File 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/constants/index.ts' is not under 'rootDir' 'libs/backend/assembly'. 'rootDir' is expected to contain all source files. The file is in the program because: Imported via './constants' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/compile.module.ts' Imported via '../constants' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/services/compile.service.ts' Imported via './constants' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/index.ts' 5 import { COMPILE_OPTIONS_TOKEN } from './constants'; ~~~~~~~~~~~~~ libs/backend/compile/src/services/compile.service.ts:11:39 11 import { COMPILE_OPTIONS_TOKEN } from '../constants'; ~~~~~~~~~~~~~~ File is included via import here. libs/backend/compile/src/index.ts:3:15 3 export * from './constants'; ~~~~~~~~~~~~~ File is included via import here. libs/backend/compile/src/compile.module.ts:10:8 - error TS6059: File 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/interfaces/index.ts' is not under 'rootDir' 'libs/backend/assembly'. 'rootDir' is expected to contain all source files. The file is in the program because: Imported via './interfaces' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/compile.module.ts' Imported via '../interfaces' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/services/compile.service.ts' Imported via './interfaces' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/index.ts' 10 } from './interfaces'; ~~~~~~~~~~~~~~ libs/backend/compile/src/services/compile.service.ts:17:8 17 } from '../interfaces'; ~~~~~~~~~~~~~~~ File is included via import here. libs/backend/compile/src/index.ts:4:15 4 export * from './interfaces'; ~~~~~~~~~~~~~~ File is included via import here. libs/backend/compile/src/compile.module.ts:11:32 - error TS6059: File 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/services/index.ts' is not under 'rootDir' 'libs/backend/assembly'. 'rootDir' is expected to contain all source files. The file is in the program because: Imported via './services' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/compile.module.ts' Imported via './services' from file 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/index.ts' 11 import { CompileService } from './services'; ~~~~~~~~~~~~ libs/backend/compile/src/index.ts:5:15 5 export * from './services'; ~~~~~~~~~~~~ File is included via import here. libs/backend/compile/src/constants/index.ts:2:15 - error TS6059: File 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/constants/compile.constants.ts' is not under 'rootDir' 'libs/backend/assembly'. 'rootDir' is expected to contain all source files. 2 export * from './compile.constants'; ~~~~~~~~~~~~~~~~~~~~~ libs/backend/compile/src/index.ts:1:15 - error TS6059: File 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/compile.module.ts' is not under 'rootDir' 'libs/backend/assembly'. 'rootDir' is expected to contain all source files. 1 export * from './compile.module'; ~~~~~~~~~~~~~~~~~~ libs/backend/compile/src/interfaces/index.ts:2:15 - error TS6059: File 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/interfaces/compile.interface.ts' is not under 'rootDir' 'libs/backend/assembly'. 'rootDir' is expected to contain all source files. 2 export * from './compile.interface'; ~~~~~~~~~~~~~~~~~~~~~ libs/backend/compile/src/services/index.ts:2:15 - error TS6059: File 'C:/data/rnd/cskiwi/badman-next/libs/backend/compile/src/services/compile.service.ts' is not under 'rootDir' 'libs/backend/assembly'. 'rootDir' is expected to contain all source files. 2 export * from './compile.service'; ~~~~~~~~~~~~~~~~~~~
已尝试的解决方法
- 重新安装项目依赖
- 执行
nx reset清理缓存
以上操作均未解决问题
补充信息
相关PR已提交
内容的提问来源于stack exchange,提问作者Kiwi
相关产品推荐
相关产品推荐

