我对 npm monorepo 有以下设置:https://github.com/ChristianKernDev/monorepo_playground
一切都按预期工作,除了
tsc
命令,它显示以下错误:
../common/src/index.ts:1:17 - error TS2307: Cannot find module 'test/a' or its corresponding type declarations.
这意味着编译器无法正确导入子模块中的直接路径。我该如何解决这个问题?
有多个点:
npm link
。请参阅相关文档。只要跑步npm install
就足够了。common
中添加对 app/tsconfig.json
lib 的引用:{
"extends": "../tsconfig.json",
"compilerOptions": {
...
},
"references": [
{ "path": "../common" }
],
"include": [
...
]
}
noEmit
替换为 emitDeclarationOnly
,以便生成“common”lib 的类型声明。composite
设置为 true
以启用 declaration
。{
"compilerOptions": {
...
"emitDeclarationOnly": true,
"composite": true
},
}
npm run --workspaces