隐藏. js。在Visual Studio Code:文件嵌套中映射文件

我正在Visual Studio代码中的typescript项目上工作,想隐藏.js.map(甚至可能是.js)文件,不出现在文件资源管理器中。

是否可以在文件资源管理器中只显示.ts文件?

89828 次浏览

在你的设置中(用户或工作区)有一个设置,你可以调整隐藏任何你想要的东西:

{
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true
}
}

所以你可以在下面添加隐藏.js.js.map文件

"**/*.js": true,
"**/*.js.map": true

作为另一个答案解释了,大多数人可能只在有匹配的.ts文件时才想隐藏.js文件。

所以不要这样做:

"**/*.js": true

你可能想做的是:

"**/*.js": {"when": "$(basename).ts"}

我发现了这个,如果你有标准的JS文件,那么这些也会被隐藏,这可能并不总是你想要的。也许这样更好,因为它只隐藏与TS文件匹配的JS文件…

{
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/*.js.map": true,
"**/*.js": {"when": "$(basename).ts"}
}
}

我真的不知道这是如何实现的,但隐藏.js文件工作:

"**/*.js": {"when": "$(basename).ts"}

隐藏.js.map文件工作:

"**/*.js.map": {"when": "$(basename)"}
.map.js文件与对应的.ts文件匹配时,隐藏它们可能更好 你可以在VS用户设置(首选项>用户设置)中复制以下行:

// Workspace settings
"files.exclude": {
"**/*.js":  {"when": "$(basename).ts"},
"**/*.map": true
}

当你使用TypeScript时,你通常不希望在资源管理器或搜索结果中看到生成的JavaScript文件。VS Code通过files.exclude设置(File > Preferences >工作空间设置)提供了过滤功能,你可以很容易地创建一个表达式来隐藏这些派生文件:

"**/*.js": { "when": "$(basename).ts"}

类似地通过以下方法隐藏生成的.map文件:

 "**/*.js.map": { "when": "$(basename)"}

所以你会得到这样的构型:

settings.json

// Place your settings in this file to overwrite default and user settings.
{
"files.exclude": {
"**/*.js": { "when": "$(basename).ts"},
"**/*.js.map": { "when": "$(basename)"}
}
}

链接:https://code.visualstudio.com/docs/languages/typescript#_hiding-derived-javascript-files

约翰爸爸的推特链接说使用以下:

"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
"**/*.js" : {
"when": "$(basename).ts"
},
"**/*.js.map": {
"when": "$(basename)"
}
}

将这些设置添加到你的.vscode文件夹中的settings.json

// Place your settings in this file to overwrite default and user settings.
{
"files.exclude" :{
"**/.git":true,
"**/.DS_Store":true,
"**/*.map":true,
"**/app/**/*.js":true


}
}

如果设置。单击File ---> Preferences --> Workspace Settings。

官方文档:

排除从.ts和.tsx源生成的JavaScript文件 文件,使用这个表达式:

"**/*.js": { "when": "$(basename).ts" },
"**/**.js": { "when": "$(basename).tsx" }

这是一个小技巧。搜索glob模式用作键。 上面的设置使用两种不同的glob模式来提供两个 唯一的键,但搜索仍将匹配相同的文件

更新10/3/2017:用这个技巧,我们有一个问题与“搜索文件夹”。请参阅问题

在VS Code中,进入代码(或Windows用户的文件)>首选项>工作区设置,并添加以下代码片段:

{
"files.exclude": {
"**/*.js": {"when": "$(basename).ts"},
"**/*.map": {"when": "$(basename).map"}
}
}

请在“用户设置”面板中添加以下行,以覆盖“默认设置”。你可以隐藏文件{basename}.js和{basename}.js。在创建文件{basename}.ts时映射。

"files.exclude": {
"**/*.js": {
"when": "$(basename).ts"
},
"**/*.js.map": {
"when": "$(basename)"
}
}

1. 进入首选项>设置

enter image description here

2. 点击“编辑设置”。json”(在图片的底部)

enter image description here

<强> 3。更新object json,如图所示。然后保存您的更改Ctrl + S,仅此而已。

"files.exclude": {
"**/*.js": {"when": "$(basename).ts"}
}

enter image description here

目前还没有基于两种不同条件排除文件glob的正式解决方案。看到这个问题

不过,有一个解决方案来定义两个不同的glob模式,它们针对相同的文件:

{
"files.exclude": {
"**/*.js": { "when": "$(basename).ts"},
"**/*?.js": { "when": "$(basename).tsx"}
}
}

在v1.67中(参见https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_67.md):

浏览器文件嵌套

资源管理器现在支持基于名称嵌套相关文件。有几个设置来控制这种行为:

  • explorer.fileNesting.enabled:控制是否在大范围内启用文件嵌套。它可以全局设置,也可以为特定的工作空间设置。
  • explorer.fileNesting.expand:控制默认情况下嵌套文件是否展开。
  • explorer.fileNesting.patterns:控制如何嵌套文件。默认配置为TypeScript和JavaScript项目提供嵌套智能,但鼓励您修改它以适应您自己的项目结构。一些例子:
< p >默认配置: default configuration

当文件匹配目录名("index.ts": "${dirname}.ts")时,嵌套在index.ts下: enter image description here

嵌套与不同文件同名但添加了段("*": "${basename}.*.${dirname}")的文件: enter image description here < / p >

那些密切关注我的回忆的人,这已经是几个迭代的实验设置。现在的行为基本没有变化,除了文件操作。实验设置explorer.experimental.fileNesting.operateAsGroup已被删除,以便在倒塌时将巢视为一组,但在其他情况下将巢视为单个实体。这意味着,如果您想复制、剪切、拖动或删除整个嵌套文件堆栈,您可以将嵌套折叠,然后将其作为单个实体进行操作。当非折叠时,选择将正常工作。


之前的回答:

在Insiders Build v1.64中有一个名为文件嵌套的新特性,目前处于实验阶段,虽然它不会自动生成隐藏文件,但如果你愿意,它会将它们嵌套在生成相关文件的父文件下,使其处于折叠状态。如果可能的话,你应该现在就在内部构建中测试你的案例。

文件嵌套设置

因此,通过对File Nesting: Patterns的修改:

"*.ts": "$(capture).js, $(capture).d.ts, $(capture).js.map"你可以很容易地实现OP的要求。演示:

file nested demo .ts generated files .

文件嵌套将不会隐藏那些嵌套文件的搜索。