Typescript aws cdk忽略tsconfig路径和类型根

Typescript aws cdk忽略tsconfig路径和类型根,typescript,aws-cdk,Typescript,Aws Cdk,我有一个使用AWS-CDK的项目,都是用打字脚本编写的 我有一个名为typings的本地文件夹,其中包含我的“全局”类型-那里没有导入/导出 我可以在代码中的任何地方使用这些类型,cdk应用程序定义除外。这意味着我可以创建一个包含lambda的cdk堆栈,其中包含这些非导入类型,但我不能在我的cdk应用程序构建文件中直接使用这些类型。TS只是说找不到他们 我在jest(ts jest)中遇到了类似的问题,它无法找到路径。这是通过一个模块解决的,该模块帮助导入'tsconfig path/regi

我有一个使用AWS-CDK的项目,都是用打字脚本编写的

我有一个名为typings的本地文件夹,其中包含我的“全局”类型-那里没有导入/导出

我可以在代码中的任何地方使用这些类型,cdk应用程序定义除外。这意味着我可以创建一个包含lambda的cdk堆栈,其中包含这些非导入类型,但我不能在我的cdk应用程序构建文件中直接使用这些类型。TS只是说找不到他们

我在jest(ts jest)中遇到了类似的问题,它无法找到
路径。这是通过一个模块解决的,该模块帮助导入'tsconfig path/register'
,我怀疑CDK也有同样的问题-它忽略了我的tsconfig。我正在使用这个
导入'tsconfig path/register'
来处理路径,但不知道如何修复它,因为找不到我的类型。虽然我还没有试过,但我也怀疑jest会有同样的打字问题。似乎与运行cli脚本有关

tsconcig.json

{
  "extends": "@tsconfig/node12/tsconfig.json",
  "compilerOptions": {
    "target": "ES2018",
    "module": "commonjs",
    "lib": ["es2018"],
    "declaration": true,
    "strict": true,
    "strictNullChecks": true,
    "alwaysStrict": true,
    "noImplicitAny": false,
    "noImplicitReturns": false,
    "noImplicitThis": false,
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "noFallthroughCasesInSwitch": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "experimentalDecorators": true,
    "strictPropertyInitialization": false,
    "resolveJsonModule": true,
    "outDir": "dist",
    "baseUrl": ".",
    "paths": {
      "lib/*": ["src/lib/*"],
      "handlers/*": ["src/handlers/*"],
      "config/*": ["src/config/*"]
    },
    "typeRoots": [
      "node_modules/@types",
      "typings"
    ],
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  }
}
cdk应用程序示例:

import 'tsconfig-paths/register'

const app = new App()

// leter in some stack
addEventRule(events: EventType[]) { // EventType is a custom declaration
  
  new Rule(this, 'ModuleLambdaBuilderRule', {
    ...
  }).addTarget(...)
我的自定义打字/common.ts

Type EventType = 'foo' | 'bar'
在上面的示例中,我不能在cdk文件中的任何位置使用
EventType
。但是我可以在我的任何lambda代码中很好地使用它


我如何解决这个问题?我承认我在当前的工作过程中有点迷失了方向-显然
typeroot
是我不应该真正使用的补丁。我尝试使用
includes
files
tsconfig选项添加所有文件,但没有区别。

Hmm好的。我想我需要在没有任何分配的情况下导入这些文件

我有许多类型文件-它们不包含导入/导出。 我创建了一个index.ts文件,其中:

import './foo'
import './bar'
然后在我的cdk文件中:

import './typings'
不知道这里发生了什么。有些出口巫毒。我以为我不能进口没有出口的东西。我正在使用它。

导入“路径”
只需加载文件即可。它实际上没有分配任何内容。导入的文件是分配类型的文件