Изменение файла Typescript не распознается сборкой Visual Studio и считает все актуальным - PullRequest
0 голосов
/ 28 мая 2019

Я использую TypeScript в проекте ASP.NET Core 3 (превью 5) с последней версией VS 2019 16.1.1 (tsc: 3.4)

Все мои файлы TypeScript прекрасно компилируются, когда я использую «Перестроить все» или касаюсь любых файлов C # или касаюсь tsconfig.json.

Однако, когда я изменяю любой из моих файлов .ts, сохраняю, тогда «Build» VS 2019 сообщает все в актуальном состоянии и ничего не делает.

Что я пробовал до сих пор:

  • Я изменил порядок compileOnSave и compilerOptions, это не имеет значения
  • Я пытался установить compileOnSave true или false, это не помогает. Кстати compileOnSave true ничего не делает, мне все равно, многим (я ненасытен, мне будет достаточно скомпилировать при сборке :-), но может иметь диагностическое значение.

tsconfig.json:

"compileOnSave": false, // does not matter if true or false
"compilerOptions": {
  "module": "none",
  "noImplicitAny": true,
  "noEmitOnError": true,
  "sourceMap": true,
  "experimentalDecorators": true,
  "emitDecoratorMetadata": true,
  "target": "es2015",
  "lib": [
    "es2015",
    "es5",
    "dom"
  ],
  "outDir": "wwwroot/js/gen-ts",
  "typeRoots": [
    "./wwwroot/lib/@types"
  ]
},
"include": [
  "./Scripts"
]

1 Ответ

0 голосов
/ 31 мая 2019

Спасибо, что поделились своим проектом. Я воспроизвел похожую проблему на моей стороне.

Вот предложения, которые могут помочь:

1. Переместите ваши .ts файлы из общей папки в папку Scripts, так как содержимое вашего tsconfig.json:

"include": [
  "./Scripts"

2.Go => Инструменты => Параметры => Проекты и решения =>. Net core => Современные проверки = >> убедитесь, что мы проверили Don't call msbuild if a project appears to be up-to-date.

3. Удалите папку bin и obj и пересоберите решение.

(Не уверен, какие шаги выше действительно помогают, хотя в некоторых аспектах я решил проблему, я не могу понять, что действительно работает, так как я сделал слишком много изменений и тестов)

4. После этого выходные данные сборки будут отображать successful build большую часть времени, хотя мы не вносим изменений.

Но я думаю, что он просто отображает сообщение об успешной сборке (на самом деле эти файлы не создаются):

1.Если я изменил xx.ts, будет восстановлен только xx.js. (Вы можете сравнить время изменения файлов .js)

2.Если я внесу некоторые изменения в файл xx.cs, будет восстановлен только файл .dll и некоторые файлы, но не файл xx.js.

Я думаю, что теперь поведение сборки в основном нормальное, за исключением неправильного вывода сборки, которое может ввести нас в заблуждение. Для этого аспекта вы можете сообщить об этой проблеме с помощью меню Справка => Отправить отзыв => Сообщить о проблеме, чтобы сообщить о ней.

Надеюсь, я что-то не так понял :( Пожалуйста, не стесняйтесь поправлять меня, если что-то не так в моем ответе.

...