Скрыть файлы .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"}
Brocco
источник
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"}
    }
}
AlwaysLearning
источник
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)"}
Luka
источник
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)"
        }
}
YourAboutMeIsBlank
источник
15

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

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

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

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

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

duodvk
источник
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
источник
Этот работал для меня для файлов исходных карт. Спасибо @mutlugokhan. Sagolasin.
Серегветрин,
4

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

// Workspace settings
"files.exclude": {
        "**/*.js":  {"when": "$(basename).ts"},
        "**/*.map": true
 }
mvecchione
источник
Это скроет все файлы с именами, заканчивающимися на .map.
Рой Тинкер
3

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

{
   "files.exclude": {
      "**/*.js": {"when": "$(basename).ts"},
      "**/*.map": {"when": "$(basename).map"}
   }
}
reza.cse08
источник
0

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

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

{
    "files.exclude": {
        "**/*.js": { "when": "$(basename).ts"},
        "**/*?.js": { "when": "$(basename).tsx"}
    }
}
Зак Постен
источник