网站搜索

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

我想知道的是:

  1. 将一个解决方案拆分为多个项目的这种方法是否正确,或者还有更多未考虑的缺点?
  2. 为什么 eslint 会在根文件夹中查找 tsconfig.json?

答案#1

lerna 或 yarn 工作区可以帮助你以你描述的方式管理一个多项目仓库。我不确定在不看到 eslint 是如何设置的情况下如何修复你的错误,但可能值得考虑这些解决方案,而不是自己尝试设置一切。

答案#2

经过一些研究,我发现了微软的一个名为 Rush 的 monorepos 工具。
对我来说,这个工具最像 Visual Studio 的 .sln,并使用了我已经在使用的包管理器 pnpm。

相关文章