Компиляция при сохранении в tsconfig. json работает для новых файлов иначе, чем для существующих файлов - PullRequest
0 голосов
/ 21 апреля 2020

РЕДАКТИРОВАТЬ : я решил свою проблему, добавив это в свой файл .csproj, как предложено здесь . Однако я хочу подчеркнуть, что компиляция при сохранении уже была отключена в Visual Studio и Visual Studio перезапущена. Вот почему я был сбит с толку. Думаю, этого было недостаточно.

<PropertyGroup>
   <TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
</PropertyGroup>

Начало предыдущего вопроса:

Так что я недавно экспериментировал с Angular и его функциями. Одним из них является функция CompileOnSave в tsconfig.json со следующими настройками:

"outDir": "./dist/out-tsc",
"watch":  true,

Это все работает, однако я наблюдаю различное поведение между добавлением новых файлов и изменением существующих файлов. В обоих случаях изменения файла компилируются в папку ./dist/out-tsc. Все хорошо. Однако при добавлении нового файла компилятор также создает файл. js и соответствующий ему файл карты в той же папке. Это смущает. Это по замыслу? И я должен удалить их вручную или это можно автоматизировать? Мой вопрос похож на

TypeScript - Как сохранить скомпилированные файлы в отдельном каталоге?

, однако у меня уже настроено свойство outDir. Я использую Visual Studio 2019. Пожалуйста, смотрите скриншот ниже из части каталога проекта. api.component.ts - это существующий файл, модификации которого компилируются в каталог ./dist/out-tsc. file.ts, file1.ts и file2.ts - новые файлы, которые, похоже, скомпилированы в папку, в которой они созданы, а также в папку ./dist-out-tsc. Моя Angular версия 8.3.14.

скринпринт от visual studio

Мой tsconfig. json выглядит так:

{
  "compileOnSave": true,
  "compilerOptions": {
    "baseUrl": "./",
    "module": "esnext",
    "outDir": "./dist/out-tsc",
    "watch": true,
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es2015",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}
...