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


320

我正在Visual Studio代码中处理一个打字稿项目,并且希望隐藏.js.map(甚至是.js)文件以免出现在文件资源管理器中。

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

Answers:


641

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

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

因此,您可以添加以下内容以隐藏.js.js.map归档

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

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

所以不要这样做:

"**/*.js": true

您可能想做:

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

10
完美的解决方案。作为补充,我怀疑许多对此感兴趣的用户也会对隐藏node_modules目录感兴趣。可以这样做:"**/node_modules/": true
Josh10亿,

是否有停用/激活files.exclude config选项的快捷方式?有时候我想检查一些隐藏的东西
aaalsubaie

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

1
@aaalsubaie要激活/停用文件排除过滤器,MarketPlace中的扩展名是marketplace.visualstudio.com/items?itemName=nwallace.peep
AJ Qarshi

2
"**/*.map": {"when": "$(basename).map"}一样的"**/*.map": true吗?
gdbj

190

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

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

5
您可以将链接发布到该文档的记录位置吗?我想使用“ when”的更复杂形式,但是找不到它的记录位置。
masimplo

1
隐藏派生的JS文件的位置在此处记录:code.visualstudio.com/docs/languages/…–
Stuart Hallows

4
在编译并缩小scss之后,如何对.js.map文件或“ .min.css”进行相同的“何时”模式匹配?他们不要被$(基名)匹配
nickspoon

这很聪明,但是不适用于angular 2之类的东西。一切都命名为file.component.ts或file.module.ts
BentOnCoding

ts文件位于其他文件夹中怎么办?
Th3B0Y

98

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

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

对于隐藏.js.map文件有效:

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

6
该解决方案也可以处理.js.map,因为Visual Studio Code似乎解释了最终版本之前$(basename)所有内容。可以简化为,但这将排除具有相应非文件的任何文件。."**/*.map: {"when": "$(basename)"} .map.map
NjålNordmark的

44

使用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


22

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

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

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


1
另一种解决方法。我在下面将其发布为答案。
Zach Posten

8

1.转到首选项>设置

在此处输入图片说明

2.单击“在settings.json上编辑”(位于图像底部)

在此处输入图片说明

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

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

在此处输入图片说明


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


该文件--->首选项->工作区设置在哪里?当我转到“文件”时,没有任何与“首选项”和工作空间相关的内容,因此我必须放在错误的位置。供您参考,我正在使用Visual Studio 2017 Enterprise。
MHOOS

5

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

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

这个对我来说适用于源映射文件。谢谢@mutlugokhan。Sagolasin。
Seregwethrin

4

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

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

这将隐藏名称以结尾的所有文件.map
罗伊·廷克

3

在“ VS代码”中,转到“代码”(对于Windows用户,则为“文件”)>“首选项”>“工作区设置”,然后添加以下代码片段:

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.