node.js - 将 Typescript NodeJs 解决方案拆分为多个项目
我想开发一个 TypeScript Node.js 解决方案,分成三个子项目,就像一个 C# 解决方案分成多个库一样。
我希望它们每个都有自己的 package.json
UI 项目
package.json基础设施
package.json域
package.json
显然,我希望一个项目可以引用另一个项目,例如,ui 可以引用 infrastructure 项目
在 package.json 中,我发现可以使用 file: 语法来引用另一个包:
"dependencies": {
"infrastrucure": "file:../infrastructure"
},
我发现的主要缺点:
- 在运行
ui之前编译依赖的项目 - eslint显示一个警告
无法读取文件
<solution root>\tsconfig.json
我想知道的是:
- 将一个解决方案拆分为多个项目的这种方法是否正确,或者还有更多未考虑的缺点?
- 为什么 eslint 会在根文件夹中查找 tsconfig.json?
答案#1
lerna 或 yarn 工作区可以帮助你以你描述的方式管理一个多项目仓库。我不确定在不看到 eslint 是如何设置的情况下如何修复你的错误,但可能值得考虑这些解决方案,而不是自己尝试设置一切。
答案#2
经过一些研究,我发现了微软的一个名为 Rush 的 monorepos 工具。
对我来说,这个工具最像 Visual Studio 的 .sln,并使用了我已经在使用的包管理器 pnpm。