tsconfig 中 rootDir 之外的 typescript 路径别名

标签 typescript

我看到 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.jsonrootDir 中,如果您要拥有更多模块,这可能容易出错并且不想重用除 submod1submod2
  • 之外的任何东西

{
  "compilerOptions": {
    "rootDirs": ["src", "submod1/src", "submod2/src"]
  }
}

关于tsconfig 中 rootDir 之外的 typescript 路径别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65185972/

相关文章:

Typescript、index.d.ts 和 webpack : Module not found error

angular - Ionic : Typescript Error in App. Component.Ts 新增功能

reactjs - 如何使用 styled-components 和 Material-UI 对组件进行主题化?

angular - 获取将由 router.navigate 生成的 URL

typescript - 如何使用 jsdom 和 typescript 防止 "Property ' .. .' does not exist on type ' Global'"?

arrays - Typescript 数组赋值错误

angular - [attr.disabled] ="true"在 anchor 标记中不起作用

javascript - 克隆对象数组但具有选定的属性

javascript - 如何在使用 Visual Studio 2019 制作的 Django 项目中添加 TypeScript 文件

javascript - 将嵌套的 else if 语句转换为 JavaScript 中的 switch 语句