如何在tsconfig.app.json中为WebStorm中的多个源目录解析别名

时间:2018-06-19 15:21:49

标签: angular typescript angular-cli webstorm tsconfig

我在src目录之外生成了一些源文件。 结构是:

- project
  - generated
    - $ui-services
        some-other.service.ts
  - src
    - app
      - $ui-services
          some.service.ts

在tsconfig.app.json中,我指定了:

"compilerOptions": {
  ...
  "paths": {
    ...
    "@ui-services/*": ["app/$ui-services/*", "../generated/$ui-services/*"],
    ...
  }
},
"include": [
  "./**/*.ts",
  "../generated/**/*.ts"
]

现在在SomeOtherService中,我可以像这样导入SomeService:

import {SomeService} from '@ui-services/some.service';

工作正常,但是现在我失去了some-other-service.ts中的任何WebStorm开发支持。 WebStorm似乎无法正确解析别名。

我已经尝试按照某些建议将两个文件夹都标记为“ Resource Root”,但这没有帮助。

我可以做些什么来解决其他目录中文件的分辨率吗?

1 个答案:

答案 0 :(得分:2)

在命令行中运行tsc时,您将面临同样的问题。 Typescript编译器使用最近的tsconfig.*.json当前文件,从文件dir到项目根目录扫描文件夹。 generated/$ui-services/some-service.service.ts的最近配置文件是位于项目根目录中的tsconfig.json文件,并且该配置没有定义任何别名,因此tsc报告TS2307错误,并且成员无法得到解决。 将路径映射复制到根配置应该可以解决此问题:

"paths": {
      "@ui-services/*": ["src/app/$ui-services/*", "generated/$ui-services/*"]
    },