在Visual Studio Code中隐藏.js.map文件:文件嵌套

348

我正在使用Visual Studio Code进行TypeScript项目开发,希望能隐藏文件浏览器中的.js.map文件(甚至可能还有.js文件)。

是否有可能只显示文件浏览器中的.ts文件?


这个回答解决了你的问题吗?如何在Visual Studio Code中隐藏特定文件侧边栏? - JΛYDΞV
13个回答

678

在你的设置中(无论是用户还是工作区),有一个设置可以调整,以隐藏任何你想要隐藏的内容:

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

所以你可以添加以下内容来隐藏 .js.js.map 文件

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

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

因此,不要这样做:

"**/*.js": true

你可能想要做:

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

12
完美的解决方案。此外,我怀疑许多对此感兴趣的用户也会对隐藏node_modules目录感兴趣。可以像这样完成:"**/node_modules/": true - Josh1billion
107
"**/*.js": {"when": "$(basename).ts"},"**/*.map": {"when": "$(basename).map"} - iuristona
1
@aaalsubaie 要激活/停用文件排除过滤器,可以在MarketPlace上获取一个扩展程序,网址为https://marketplace.visualstudio.com/items?itemName=nwallace.peep - A J Qarshi
@Brocco,通过隐藏整个文件夹,所有不应该被隐藏的js文件也消失了 =( - Th3B0Y
2
"**/*.map": {"when": "$(basename).map"}"**/*.map": true 是一样的吗? - gdbj
显示剩余11条评论

201

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

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

5
你能否发布一个链接,指出这个内容的来源?我想使用更加复杂的“when”语句形式,但是找不到相关的文件记录在哪里。 - masimplo
1
隐藏派生的JS文件在此处有记录:https://code.visualstudio.com/docs/languages/typescript#_hiding-derived-javascript-files - Stuart Hallows
4
在编译和压缩scss后,如何使用相同的“when”模式匹配.js.map文件或.min.css文件?它们不能通过$(basename)进行匹配。 - nickspoon
这很聪明,但不适用于像Angular 2这样的东西。一切都被命名为file.component.ts或file.module.ts。 - BentOnCoding
当ts文件在不同的文件夹中时怎么办? - Th3B0Y
这个应该放在哪个文件里? - Francis Ducharme

101

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

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

为了隐藏 .js.map 文件,请按以下步骤操作:

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

7
这个解决方案还可以处理 .js.map 文件,因为 Visual Studio Code 似乎将 $(basename) 解释为最后一个 . 之前的所有内容。可以简化为 "**/*.map: {"when": "$(basename)"},但这会排除任何具有对应的非 .map 文件的 .map 文件。 - Njål Nordmark

47

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

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


23

约翰·帕帕(John Papa)在Twitter上说,使用以下内容:

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

15

来自官方文档:

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

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

这有点诡计。搜索全局模式被用作键。上面的设置使用了两个不同的全局模式来提供两个唯一的键,但是搜索仍然会匹配相同的文件。

更新于10/3/2017: 使用此技巧时我们遇到了“在文件夹中搜索”的问题。请参见issue


1
这个问题还有另外一个解决方法,我在下面发布了答案。 - Zach Olivare

14

1. 转到偏好设置 > 设置

enter image description here

2. 点击“在settings.json上进行编辑”(它位于图像底部)

enter image description here

3. 根据图片所示更新对象的json。然后保存更改Ctrl + S,就这样。

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

enter image description here


7
请在“用户设置”面板中添加以下行,以覆盖“默认设置”。当您创建名为 {basename}.ts 的文件时,可以隐藏 {basename}.js 和 {basename}.js.map 文件。
"files.exclude": {
        "**/*.js": {
            "when": "$(basename).ts"
        },
        "**/*.js.map": {
            "when": "$(basename)"
        }        
    }

这个对我在sourcemap文件方面起作用。谢谢@mutlugokhan。Sagolasin。 - Seregwethrin

5
将以下设置添加到您的 .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不可用,请单击文件--->首选项-->工作区设置。

这个文件在哪里 ---> 首选项 --> 工作区设置?当我进入文件时,我没有任何与首选项和工作区相关的内容,所以我一定是在错误的位置。供您参考,我正在使用Visual Studio 2017 Enterprise。 - MHOOS

4

.map.js 文件与相应的 .ts 文件匹配时,将它们隐藏可能更好。
您可以通过将以下行复制到 VS 用户设置中(首选项>用户设置)来实现:

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

1
这将隐藏所有文件名以 .map 结尾的文件。 - Roy Tinker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接