Monorepo - 多个 .vscode 设置

Rau*_*aul 9 javascript json visual-studio-code monorepo

项目结构

我有以下项目结构:

/
| - .vscode/
| - - - - settings.json
|
| - packages/
| - - - - app/
| - - - - - - index.js
| - - - - - - package.json
| - - - - website/
| - - - - - - .vscode/
| - - - - - - - - settings.json
| - - - - - - index.html
| - - - - - - styles.scss
| - - - - - - package.json
|
| - package.json
|
Run Code Online (Sandbox Code Playgroud)

如您所见,我有两个 VS-Code 设置文件:一个位于根目录,另一个位于网站工作区中。

根与代码设置

/
| - .vscode/
| - - - - settings.json
|
| - packages/
| - - - - app/
| - - - - - - index.js
| - - - - - - package.json
| - - - - website/
| - - - - - - .vscode/
| - - - - - - - - settings.json
| - - - - - - index.html
| - - - - - - styles.scss
| - - - - - - package.json
|
| - package.json
|
Run Code Online (Sandbox Code Playgroud)

网站工作区与代码设置

{
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
  },
  "editor.formatOnSave": false,
  "editor.tabSize": 2,
  "editor.rulers": [
    80,
    120
  ],
  "eslint.codeAction.showDocumentation": {
    "enable": true
  },
  "eslint.validate": [
    "javascript"
  ],
  "eslint.workingDirectories": [
    {
      "mode": "auto"
    }
  ],
  "javascript.updateImportsOnFileMove.enabled": "always",
}
Run Code Online (Sandbox Code Playgroud)

问题

我知道它/.vscode/settings.json与我的 vs-code 默认设置合并。但...

  1. /packages/website/.vscode/settings.json合并于/.vscode/settings.json

  2. 正如您所看到的,两个配置中都有一些代码重复:

  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
  },
Run Code Online (Sandbox Code Playgroud)

  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
    "source.fixAll.stylelint": true
  },
Run Code Online (Sandbox Code Playgroud)

如果我"source.fixAll.eslint": true,从中删除/packages/website/.vscode/settings.json,是否会editor.codeActionsOnSave.source.fixAll.eslint延长/.vscode/settings.json

sta*_*all 3

在撰写本文时,VS Code 设置文件无法引用其他设置文件来扩展/继承它们的设置,并且它们不会自动扩展/继承.vscode/settings.json父文件夹中文件的设置。

请参阅 VS Code GitHub 存储库上非常流行的功能请求问题票证:添加从其他设置文件扩展的功能 #15909您可以通过对问题点赞来表达您对问题单的支持。但请不要发表“我也是”的评论。“我也是”的评论通常会让回购维护者感到厌烦,因为它们扰乱了讨论并且没有贡献任何重要的价值。

如您所知,应用于工作空间的设置使用工作空间文件夹的.vscode/settings.json文件并回退到用户的settings.json文件。但中间还有一个中间层:如果您使用多根工作区,中间层是多根工作区的.code-workspace文件,您可以在其中放置适用于多根工作区中所有工作区根的设置。

奖金信息: