在 Visual Studio 中隐藏 .js.map 个文件代码:文件嵌套

Hide .js.map files in Visual Studio Code: File Nesting

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

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

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

{
    "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 > Workspace Settings)提供过滤功能,您可以轻松创建表达式来隐藏那些派生文件:

"**/*.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)"}
    }
}

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

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

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

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

// 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 不可用,请单击文件 ---> 首选项 --> 工作区设置。

来自official doc

to exclude JavaScript files generated from both .ts and .tsx source files, use this expression:

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

This is a bit of a trick. The search glob pattern is used as a key. The settings above use two different glob patterns to provide two unique keys but the search will still match the same files.

2017 年 10 月 3 日更新: 使用这个技巧我们遇到了 "search in folder" 的问题。请参阅 issue

In VS Code go to Code (or File for Windows users) > Preferences > Workspace Settings and add this code snippet:

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

请在 "User Settings" 面板中添加以下行以覆盖 "Default Settings"。您可以隐藏文件 {basename}.js 和 {basename}.js.map 当您将文件创建为 {basename}.ts.

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

1.转到首选项 > 设置

2。点击"Edit on settings.json"(在图片底部)

3。如图所示更新对象 json。然后保存您的更改 Ctrl + S 就这样。

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

根据两种不同的条件排除文件glob,目前官方还没有解决方案。参见 this issue

但是有 a workaround 来定义针对相同文件的两个不同的 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 文件嵌套

资源管理器现在支持根据名称嵌套相关文件。有几个设置可以控制此行为:

  • explorer.fileNesting.enabled:控制是否启用文件嵌套。它可以全局设置或为特定工作区设置。
  • explorer.fileNesting.expand:控制嵌套文件是否默认展开。
  • explorer.fileNesting.patterns:控制文件的嵌套方式。默认配置为 TypeScript 和 JavaScript 项目提供嵌套智能,但我们鼓励您修改它以适应您自己项目的结构。一些例子:

默认配置:

当文件与目录名称 ("index.ts": "${dirname}.ts") 匹配时嵌套在 index.ts 下:

嵌套与不同文件同名但添加了段的文件 ("*": "${basename}.*.${dirname}"):

那些密切关注我的人记得这是几次迭代的实验设置。现在的行为基本没有变化,文件操作除外。实验设置 explorer.experimental.fileNesting.operateAsGroup 已被移除,以便在折叠时将巢视为一个整体,否则将其视为单个实体。这意味着如果您想要复制、剪切、拖动或删除整个嵌套的文件堆栈,您可以折叠嵌套,然后将其作为单个实体进行操作。未折叠时,选择将正常运行。


上一个回答:

Insiders Build v1.64 中有一个新的、目前处于试验阶段的功能,称为 文件嵌套,虽然它不会隐藏自动生成的文件,如果您希望在生成相关文件的父文件下,它将以折叠状态嵌套它们。如果可能,您应该立即在 Insiders Build 中测试您的案例。

因此对 File Nesting: Patterns 进行此修改:

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

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