NX单体仓库导入模块报错TS6059:文件不在rootDir目录下
NX工作区TS6059编译错误解决方案
针对你遇到的TS6059错误(business-logic/helpers的文件不在api/data的rootDir下),以下是针对性的排查和解决步骤:
检查目标库的TS配置文件
打开libs/api/data/tsconfig.lib.json,重点核对以下配置:rootDir:确保设置为相对路径"./src",不要写绝对路径,避免跨库路径冲突include:仅包含当前库的源码,比如["src/**/*.ts", "src/**/*.tsx"],不要包含其他库的目录exclude:确保排除node_modules、dist以及其他库的路径,比如["../../**/dist", "../../**/node_modules"]
规范跨库导入方式
不要用相对路径跨库导入文件,比如../../business-logic/helpers/src/lib/params,改用NX库别名导入:// 替换成你的库别名(比如@org/business-logic/helpers) import { xxx } from '@org/business-logic/helpers';同时确认
tsconfig.base.json里的paths配置正确映射了该别名:"paths": { "@org/business-logic/helpers": ["libs/business-logic/helpers/src/index.ts"] }修复库依赖关系
确保api/data库已正确声明对business-logic/helpers的依赖:
执行NX命令添加依赖:nx g @nx/js:add-dependency --project api-data --dependency business-logic-helpers这样NX会自动处理编译顺序,先构建
business-logic/helpers再构建api/data,避免源码引用冲突清理缓存并重新编译
执行以下命令清理NX缓存,避免旧配置残留:nx reset然后强制重新编译目标库:
nx build api-data --skip-nx-cache检查全局TS配置
打开根目录的tsconfig.base.json,确保compilerOptions中没有全局设置rootDir,该配置应由各个库的tsconfig.lib.json单独定义,避免全局覆盖导致的路径错误
内容的提问来源于stack exchange,提问作者Ethan
相关产品推荐
相关产品推荐

