tl;底部是博士
我有一个用TypeScript编写的网络服务器和一个用TypeScript编写的客户端SPA。我的想法是共享请求和响应数据的接口,以充分利用" type-safety"。 我的大问题是客户端和服务器是兄弟文件夹,每个文件夹都有自己的package.json,tsconfig.json,src-dir等。 我想拥有的是这样的:
server/
├── src/
├── build/
├── tsconfig.json
└── package.json
client/
├── src/
├── build/
├── tsconfig.json
└── package.json
shared/
├── Requests.ts
└── Responses.ts
我希望能够像这样导入共享接口:
import { ILoginRequest } from '@shared/Requests';
我已经配置了tsconfig.json
但tsc
仍为输出
error TS2307: Cannot find module '@shared/Requests'.
:
客户端(React)配置为例:
{
"compilerOptions": {
"outDir": "build/dist",
"module": "esnext",
"target": "es5",
"lib": ["es6", "dom"],
"sourceMap": true,
"allowJs": true,
"jsx": "react",
"moduleResolution": "node",
"rootDirs": [
"src",
"../shared"
],
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": true,
"baseUrl": ".",
"paths": {
"@shared/*": [
"../shared/*"
],
"*": [
"node_modules/*",
"src/types/*"
]
}
},
"exclude": [
"node_modules",
"build",
"scripts",
"acceptance-tests",
"webpack",
"jest",
"src/setupTests.ts"
]
}
我做错了什么?我的想法是否可能?提前谢谢!
TL;博士
我希望通过兄弟文件夹(" shared")共享两个TS项目("服务器"和#34;客户端")之间的接口,但是可以'弄清楚如何配置tsc
以使import { ILoginRequest } from '@shared/Requests';
成为可能。