VSCode - 使用 Deno(后端)文件夹和 Vite(前端)文件夹设置 monorepo

VSCode - Setup a monorepo with a Deno (backend) folder and a Vite (frontend) folder

我正在尝试使用使用 Deno 的 back(或“api”)文件夹front(或"webapp") 文件夹,它是一个 React 应用程序(或者实际上,任何框架,配置了 Vite)。

所以这个项目实际上混合了 Deno 和 Node(如果这是个坏主意,你现在可以阻止我)。 我可能还会考虑在整个项目中使用 Deno Linter 和 Formatter。

文件结构如下所示:

my-monorepo/
├── .vscode/
│   └── settings.json
├── back/
│   └── index.ts
├── front/
│   ├── src/
│   │   └── index.tsx
│   ├── index.html
│   └── vite.config.ts
├── .gitignore
├── deno.jsonc
└── package.json

它非常有效,但我现在遇到的主要问题是 VSCode Deno 扩展。

是否可以为 front/ 文件夹使用内置的 VSCode JS 和 TS 语言服务,为 back/ 文件夹? 否则 TS 会生气(例如 back/ 中的导入必须包含 .ts 但在字体中它们大多数不包含 .ts)。

最后,如果我能让它工作,我希望任何克隆回购协议的人都能轻松使用它。

喂,这里是.vscode/settings.json文件供参考:

{
  "deno.enable": true,
  "deno.config": "./deno.jsonc",

  "[typescript]": {
    "editor.defaultFormatter": "denoland.vscode-deno",
  }
}

您将 运行 遇到此设置的问题。查看这些相关的 GitHub 问题 1, 2

相反,在一个工作区(您的后端)中使用 Deno 的 LSP,在另一个工作区(您的前端)中使用 vanilla TS LSP,在每个工作区中使用独有的 VS Code 设置文件。 (如果您使用 Deno 进行 repo top-level 脚本编写,那么也可以为 top-level 复制 VS Code 配置。)

然后,为您的 monorepo 中的每个工作区打开一个单独的 VS Code window,以便他们可以使用自己的 LSP 而不会发生冲突。