339

我正在使用 Visual Studio 代码编写一个打字稿项目,并希望隐藏.js.map(甚至可能是.js)文件不出现在文件资源管理器中。

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

4

13 回答 13

667

在您的设置(用户或工作区)中,您可以调整一个设置以隐藏您想要的任何内容:

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

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

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

正如另一个答案所解释的那样,大多数人可能只想.js在有匹配文件时隐藏.ts文件。

所以不要这样做:

"**/*.js": true

你可能想做:

"**/*.js": {"when": "$(basename).ts"}
于 2015-07-23T13:37:42.587 回答
198

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

{
    "files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true,
        "**/*.js.map": true,
        "**/*.js": {"when": "$(basename).ts"}
    }
}
于 2015-09-16T09:07:32.987 回答
100

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

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

隐藏.js.map文件的工作原理:

"**/*.js.map": {"when": "$(basename)"}
于 2016-03-11T15:08:09.733 回答
46

使用 TypeScript 时,您通常不希望在资源管理器或搜索结果中看到生成的 JavaScript 文件。files.excludeVS Code 通过设置(文件 > 首选项 > 工作区设置)提供过滤功能,您可以轻松创建表达式来隐藏这些派生文件:

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

同样隐藏生成.map的文件:

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

因此,您将拥有如下配置:

设置.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

于 2016-09-18T04:29:07.297 回答
23

John Papa Twitter LINK说使用以下内容:

"files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true,
        "**/*.js" : {
            "when": "$(basename).ts"
        },
        "**/*.js.map": {
            "when": "$(basename)"
        }
}
于 2016-12-13T15:33:50.340 回答
15

来自官方文档

要排除从 .ts 和 .tsx 源文件生成的 JavaScript 文件,请使用以下表达式:

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

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

2017 年 10 月 3 日更新:使用这个技巧,我们遇到了“在文件夹中搜索”的问题。请看问题

于 2017-06-19T09:02:01.997 回答
14

1. 转到首选项 > 设置

在此处输入图像描述

2. 点击“Edit on settings.json”(在图片底部)

在此处输入图像描述

3. 更新对象 json,如图所示。然后保存您的更改Ctrl + S,仅此而已。

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

在此处输入图像描述

于 2018-09-11T19:48:44.680 回答
7

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

"files.exclude": {
        "**/*.js": {
            "when": "$(basename).ts"
        },
        "**/*.js.map": {
            "when": "$(basename)"
        }        
    }
于 2018-02-12T19:40:41.720 回答
6

将这些设置添加到.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

    }
}

如果 settings.json 不可用,请单击 File ---> Preferences --> Workspace Settings。

于 2017-01-08T00:20:03.677 回答
4

也许最好在它们匹配对应的文件时隐藏.map和文件。 您可以通过在 VS 用户设置(首选项 > 用户设置)中复制以下行来做到这一点:.js.ts

// Workspace settings
"files.exclude": {
        "**/*.js":  {"when": "$(basename).ts"},
        "**/*.map": true
 }
于 2016-09-16T16:27:55.540 回答
3

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

{
   "files.exclude": {
      "**/*.js": {"when": "$(basename).ts"},
      "**/*.map": {"when": "$(basename).map"}
   }
}
于 2017-08-21T18:50:38.680 回答
1

Insiders Build v1.64 中有一个新的,目前是实验性的功能,称为文件嵌套,虽然它不会隐藏自动生成的文件,但如果您希望在相关文件所在的父文件下,它会将它们嵌套在折叠状态产生了。如果可能,您现在应该在 Insiders Build 中测试您的案例。

文件嵌套设置

因此,通过对以下内容的修改File Nesting: Patterns

"*.ts": "$(capture).js, $(capture).d.ts, $(capture).js.map"您可以轻松实现 OP 的要求。演示:

文件嵌套演示 .ts 生成的文件

文件嵌套不会从搜索中隐藏这些嵌套文件。

于 2022-01-17T22:52:54.467 回答
0

仍然没有官方解决方案可以根据两种不同的条件排除文件 glob。看到这个问题

不过,有一种解决方法,可以定义两种针对相同文件的不同 glob 模式:

{
    "files.exclude": {
        "**/*.js": { "when": "$(basename).ts"},
        "**/*?.js": { "when": "$(basename).tsx"}
    }
}
于 2019-11-08T18:57:01.767 回答