Typescript aws cdk忽略tsconfig路径和类型根
我有一个使用AWS-CDK的项目,都是用打字脚本编写的 我有一个名为typings的本地文件夹,其中包含我的“全局”类型-那里没有导入/导出 我可以在代码中的任何地方使用这些类型,cdk应用程序定义除外。这意味着我可以创建一个包含lambda的cdk堆栈,其中包含这些非导入类型,但我不能在我的cdk应用程序构建文件中直接使用这些类型。TS只是说找不到他们 我在jest(ts jest)中遇到了类似的问题,它无法找到Typescript aws cdk忽略tsconfig路径和类型根,typescript,aws-cdk,Typescript,Aws Cdk,我有一个使用AWS-CDK的项目,都是用打字脚本编写的 我有一个名为typings的本地文件夹,其中包含我的“全局”类型-那里没有导入/导出 我可以在代码中的任何地方使用这些类型,cdk应用程序定义除外。这意味着我可以创建一个包含lambda的cdk堆栈,其中包含这些非导入类型,但我不能在我的cdk应用程序构建文件中直接使用这些类型。TS只是说找不到他们 我在jest(ts jest)中遇到了类似的问题,它无法找到路径。这是通过一个模块解决的,该模块帮助导入'tsconfig path/regi
路径。这是通过一个模块解决的,该模块帮助导入'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'
不知道这里发生了什么。有些出口巫毒。我以为我不能进口没有出口的东西。我正在使用它。导入“路径”
只需加载文件即可。它实际上没有分配任何内容。导入的文件是分配类型的文件