tsconfig 中 rootDir 外的 Typescript 路径别名
我看到了这个问题,但它稍微有些不同,而且没有答案
我有几个 git 子模块。它们是大型现有项目,我以为我可以像这样直接重用其中的部分:
myproject/
src/
submod1/src
submod2/src
像 tsconfig.json 这样的
<snip...>
"rootDir": "src/",
"outDir": "./dist",
"paths": {
"@submod1/*": [ "submod1/src/*" ],
"@submod1/*": [ "submod2/src/*" ],
"@app/*": [ "src/*" ]
},
而在我的代码中,类似于
import { SomeVar } from '@submod1/constants';
但是 vscode(以及 tsc 可能也会)报告 文件 '<path>/submod1/src/index.ts' 不在 'rootDir' '<path>/src' 下。'rootDir' 应包含所有源文件。
我只是在尝试做一些简单而务实的事情。有办法实现吗?我想我可以使用符号链接来做一些事情,但那似乎是一个很大的错误。我也可以把子模块放在 src/ 下,但那看起来也不对。
答案#1
看来对此没有“明确”的解决方案。你可以选择
- 在你的
tsconfig.json的rootDir中包含整个myproject,如果你将来会有更多模块且不想重用除了submod1和submod2之外的任何内容,这可能容易出错
或者
- 使用
rootDirs属性有选择地包含所有需要的子模块
{
"compilerOptions": {
"rootDirs": ["src", "submod1/src", "submod2/src"]
}
}
