我看到 this问题,但它略有不同,没有答案
我有几个 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)正在报告
File '<path>/submod1/src/index.ts' is not under 'rootDir' '<path>/src'. 'rootDir' is expected to contain all source files.
我只是想做一些简单实用的事情。有没有办法做到这一点?我想我可以用符号链接(symbolic link)做点什么,但这似乎是个大错误。我可以将子模块放在 src/下,但这似乎也是错误的。
最佳答案
看起来对此没有“明确”的解决方案。你也可以
- 将整个
myproject
包含在您的tsconfig.json
的rootDir
中,如果您要拥有更多模块,这可能容易出错并且不想重用除submod1
和submod2
之外的任何东西
或
- 使用
rootDirs
属性来 selectively include all the needed submodules
{
"compilerOptions": {
"rootDirs": ["src", "submod1/src", "submod2/src"]
}
}
关于tsconfig 中 rootDir 之外的 typescript 路径别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65185972/