我在typescript旁边创建了一个yarn工作区。我有三个文件夹有自己的package.json
/api
/client
/lib
重点是在API和客户端之间共享库中的代码。例如,在API文件中,我可以进行
import {User, UserAccount} from '@myproject/lib'
这是有问题的。
- 每次更改内容时,我都需要构建
lib
/api
的build
文件指向C:/myproject/lib/build/index.js
由于我想通过推送/api/build
中的内容将项目部署到heroku,这将失败,因为它在/lib/build
中找不到文件。也许我可以把这两个构建文件夹都推到heroku上,但我所希望的是能把所有/lib/src
文件编译成/api/build
。我的/client
正在expo中运行,我想它使用了类似webpack的东西,或者我不知道是什么,它似乎可以做到这一点。我需要使用webpack来实现这一点吗?或者我可以使用yarn工作区和typescript来实现吗?
在client
和api
包的tsconfig.json
中,如果您还没有两个配置,则需要两个配置:
- 在
"compilerOptions"
中,确保您有"composite": true
- 添加
"references": [{ "path": "relativePathTo/lib" }]
运行tsc时,使用--build(-b(标志运行它,如下所示:tsc -b
。这将构建活动包和references
中的任何包。有关TypeScript项目引用的详细信息。
这解决了您在开发中的问题。根据您的项目配置,您可能需要做更多的事情来将其通过CI。