Monorepo——多个.vscode设置



项目结构

我有以下的项目结构:

/
| - .vscode/
| - - - - settings.json
|
| - packages/
| - - - - app/
| - - - - - - index.js
| - - - - - - package.json
| - - - - website/
| - - - - - - .vscode/
| - - - - - - - - settings.json
| - - - - - - index.html
| - - - - - - styles.scss
| - - - - - - package.json
|
| - package.json
|

正如你所看到的,我有两个vs-code设置文件:一个在根目录,另一个在网站工作空间。

根vs代码设置

{
"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",
}

网站工作区vs代码设置
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.fixAll.stylelint": true
},
"css.validate": false,
"less.validate": false,
"scss.validate": false,
"stylelint.configFile": ".stylelintrc",
"stylelint.snippet": [
"css",
"scss"
],
"stylelint.validate": [
"css",
"scss"
],
"stylelint.packageManager": "yarn"
}

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

  1. /packages/website/.vscode/settings.json/.vscode/settings.json合并了吗

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

"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
},

"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.fixAll.stylelint": true
},

如果我从/packages/website/.vscode/settings.json中删除"source.fixAll.eslint": true,,editor.codeActionsOnSave.source.fixAll.eslint会从/.vscode/settings.json中扩展吗?

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

查看VS Code GitHub repo上非常受欢迎的功能请求问题票:添加从其他设置文件扩展的能力#15909。您可以通过对问题做出大拇指的反应来表示您对问题票的支持。但是请不要制造一个&;me too&;发表评论。"我too"注释通常会让repo维护者感到厌烦,因为它们使讨论变得混乱,并且没有贡献任何有意义的东西。

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

附加信息:

  • 还有这个问题票:允许文件夹设置级联/被继承#111884,出于某种原因,它接近于这个的副本:整体结构,多个项目设置#32693,这似乎更多的是一个功能,如多根工作区。

  • 相对较新的"配置文件"特性在这里有一个类似的/相关的特性请求:Profiles:从默认配置#156144扩展。更新:现在有一个"部分profiles"特性在VS Code内部。(更多信息在这里)。

只有3种方法来配置VSCode。按优先级排序(第一个优先级最高):

1)。项目.vscode/settings.json

2)。项目工作空间,例如.vscode/team.code-workspace

3)。VSCode用户settings.json

你可以看到我们存储团队。代码工作区也在项目的.vsode文件夹中。我们在提交文件.vscode/project.code-workspace中共享团队设置,如果开发人员需要为自己提供一些特定于项目的设置,他可以使用优先级为gitignignored的.vscode/settings.json

所以如果你想在项目中使用另一个值的选项,那么在用户设置中默认。你必须在project *.code-workspace中覆盖它。如果你想在project中使用另一个值的选项,那么在project *.code-workspace中。你必须在project settings.json

中重写它。

最新更新