Скрыть файлы .js.map в коде Visual Studio


320

Я работаю над проектом машинописного текста в коде Visual Studio и хотел бы скрыть .js.map(и, возможно, даже .js) файлы от появления в проводнике.

Можно ли отображать только .tsфайлы в проводнике?

Ответы:


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
Josh1billion

есть ли ярлык для деактивации / активации опции config.exclude files? когда-нибудь я хочу проверить что-то скрытое
aaalsubaie

103
"**/*.js": {"when": "$(basename).ts"},"**/*.map": {"when": "$(basename).map"}
Юристона

1
@aaalsubaie Чтобы активировать / деактивировать фильтр исключения файлов, есть расширение, доступное в MarketPlace на marketplace.visualstudio.com/items?itemName=nwallace.peep
AJ Qarshi

2
Это так "**/*.map": {"when": "$(basename).map"}же, как "**/*.map": true?
gdbj

190

Я обнаружил, что если у вас есть стандартные файлы JS, то они тоже будут скрыты, что не всегда может быть тем, что вы хотите. Возможно, это лучше, поскольку скрывает только файлы JS, соответствующие файлам TS ...

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

5
Можете ли вы опубликовать ссылку, где это задокументировано? Я хотел бы использовать более сложные формы «когда», но не могу найти, где это задокументировано.
Масимпло

1
Сокрытие производных JS-файлов описано
Стюарт

4
Как сделать то же самое сопоставление с шаблоном «когда» для файлов .js.map или «.min.css» после компиляции и минимизации scss? Они не соответствуют $ (basename)
ниппель

Это умно, но не работает с чем-то вроде 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, по-видимому, понимает $(basename)все до финала .. Можно упростить до "**/*.map: {"when": "$(basename)"}, но это исключило бы любые .map файлы, которые имеют соответствующий нефайл .map.
Njål Nordmark

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

Джон Папа Twitter LINK говорит, что используйте следующее:

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

15

Из официального документа :

чтобы исключить файлы JavaScript, сгенерированные из исходных файлов .ts и .tsx, используйте это выражение:

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

Это небольшая хитрость. В качестве ключа используется шаблон поиска. Приведенные выше настройки используют два разных шаблона глобуса для предоставления двух уникальных ключей, но поиск все равно будет совпадать с теми же файлами.

ОБНОВЛЕНИЕ 3/3/2017: с этим трюком у нас возникла проблема с «поиском в папке». Пожалуйста, смотрите вопрос


1
Для этого есть другой обходной путь . Я отправил это как ответ ниже.
Зак Постен

8

1. Перейдите в настройки> настройки

введите описание изображения здесь

2. Нажмите «Изменить на settings.json» (это внизу изображения)

введите описание изображения здесь

3. Обновите объект JSON, как вы можете видеть на изображении. Затем сохраните ваши изменения Ctrl + Sи все.

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

введите описание изображения здесь


6

Добавьте эти настройки в файл 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 недоступен, нажмите Файл ---> Параметры -> Настройки рабочего пространства.


Где находится этот файл ---> Настройки -> Настройки рабочего пространства? Когда я захожу в Файл, у меня нет ничего, связанного с настройками и рабочими областями, поэтому я должен быть не в том месте. Для вашей информации я использую Visual Studio 2017 Enterprise.
MHOOS

5

Добавьте следующие строки на панели «Настройки пользователя», чтобы переопределить «Настройки по умолчанию». Вы можете скрыть файлы {basename} .js и {basename} .js.map, когда создаете файл как {basename} .ts.

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

Этот работал для меня для файлов исходных карт. Спасибо @mutlugokhan. Sagolasin.
Серегветрин,

4

Может быть, лучше скрыть .mapи .jsфайлы, когда они совпадают с соответствующим .tsфайлом.
Вы можете сделать это, скопировав следующие строки в VS User Settings (Preferences> User Settings):

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

Это скроет все файлы с именами, заканчивающимися на .map.
Рой Тинкер

3

В VS Code перейдите в Code (или File для пользователей Windows)> Preferences> Workspace Settings и добавьте этот фрагмент кода:

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

0

До сих пор не существует официального решения для исключения глобуса файла, основанного на двух разных условиях. Смотрите эту проблему .

Тем не менее, существует обходной путь для определения двух различных шаблонов глобуса, которые нацелены на одни и те же файлы:

{
    "files.exclude": {
        "**/*.js": { "when": "$(basename).ts"},
        "**/*?.js": { "when": "$(basename).tsx"}
    }
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.