Функция «Компилировать при сохранении» у меня не работает после обновления до Visual Studio 2015. Когда я вношу изменение в .ts
файл в своем проекте и сохраняю его, в строке состояния в нижней части среды IDE отображается сообщение Output(s) generated successfully
, но сгенерированный .js
файл не работает. не меняю.
Вот что я пробовал:
добавив следующее в корневой
<Project>
элемент в my.csproj
:<PropertyGroup> <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled> </PropertyGroup>
установка и снятие отметки с параметра «Автоматически компилировать файлы TypeScript, не являющиеся частью проекта» в
Tools -> Options -> TypeScript -> Project
:двойная проверка, чтобы убедиться, что в свойствах сборки TypeScript моего проекта установлен флажок «Компилировать при сохранении»:
Что мне не хватает?
В качестве примечания: этап компиляции TypeScript работает должным образом при запуске обычной сборки.
Ответы:
Для меня это был такой вариант в
tsconfig.json
:"compileOnSave": true, "compilerOptions": { ... },
Перезапустите Visual Studio, чтобы это изменение вступило в силу.
источник
"watch": true
кcompilerOptions
работало для меня в Visual Studio 2015 с обновлением 2 с Typescript 1.8.29.0.csproj
файле к использованию толькоtsconfig.json
. Если страница свойств вашего проекта TypeScript не отключена, это, вероятно, означает, что у вас установлена старая версия инструментов TypeScript для Visual Studio, и вам следует установить microsoft.com/en-us/download/details.aspx?id=48593Сегодня я наткнулся на эту проблему: я исправил ее с помощью новой
"watch":true
опции компилятора, которая также доступна через JSON в самых последних версиях TypeScript:{ "compilerOptions": { "watch": true } }
После этого мне пришлось решить еще одну проблему, связанную со следующей ошибкой, которая появилась в окне вывода:
Object doesn't support property or method 'watchFile'
Оказалось, что моя система использовала устаревшую версию TypeScript (1.0.x), несмотря на то, что я был уверен, что у меня есть более новая версия , поставляемая с Visual Studio 2015 Update 1 (1.7). Если вы столкнетесь с этой проблемой, вы можете легко проверить свою версию tsc, набрав
tsc -v
в командной строке.Если он говорит
1.0.x
или что-то <1,7, вероятно, это связано с тем, что у вас есть старые ссылки в переменной среды PATH. Убедитесь, что у вас установлена версия 1.7 или более поздняя, проверив папку Microsoft SDKs, которая используется Visual Studio для установки пакетов TypeScript по мере их обновления:Если нет, обновите соответствующим образом. Откройте CPanel > System > Advanced > Environment Variables , выберите System Variables и нажмите Edit ; просмотрите список в поисках любой ссылки на папку TypeScript, измените одну из них, чтобы она указывала на вашу последнюю установленную версию TypeScript (
1.7
или выше), и удалите любые другие дублированные файлы. См. Также снимок экрана ниже:Для получения дополнительной информации прочтите этот пост в моем блоге.
источник
Решение:
Для меня, и я совершенно уверен, что это так и для других, это произошло из-за ошибки в tsconfig.json.
Вам нужно добавить compileOnSave: true. Но в глобальном разделе не внутри compilerOptions.
Wrong: { "compilerOptions": { "noImplicitAny": false, "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5", "compileOnSave": true }, "exclude": [ "node_modules", "wwwroot" ] } Correct: { "compilerOptions": { "noImplicitAny": false, "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5" }, "compileOnSave": true, "exclude": [ "node_modules", "wwwroot" ] }
С уважением,
Андерс Оба в Basechat.
источник
Эта проблема, похоже, была решена с помощью последнего обновления
TypeScript Language Services
расширения.См. Этот ответ, чтобы узнать, как применить это обновление.
источник
В моем случае я установил Visual Studio Community 2015 вместе с VS 2012. Я использовал Web Essentials для машинописного текста в 2012 году, что, похоже, противоречило 2015 году.
При удалении Web Essentials в 2012 году проблема была решена.
источник
В машинописном тексте 2 вам нужно удалить "outDir": из вашего tsconfig. Исправьте ошибку в Visual Studio.
источник
В свойствах проекта -> «TypeScript Build» вы также можете просто снять флажок «Не выдавать выходные данные, если сообщается о каких-либо ошибках». Проверка этого параметра, похоже, деактивирует транспилирование при сохранении, если есть ошибка или нет.
источник
У
"compileOnSave": true,
меня не работало. Я наконец понял, что Visual Studio не"compileOnSave": true,
принимает значение, если оно определено в другом.json
файле, который вы расширяете. Он должен быть в корне, чтобы он работал.источник
найдите файл, то есть C: \ file.ts в вашем,
terminal/cmd
и введитеtsc file.ts -w // watches for file changes and converts on save
источник
Проверьте, установлена ли у вас версия TypeScript, настроенная в проекте. Почему-то я не получил предупреждения о том, что у меня не установлен TypeScript 3.7, но функция компиляции при сохранении перестала работать тихо.
Как только я установил TypeScript 3.7, он снова заработал.
источник
Не уверен, что это кому-нибудь поможет.
Хотя у меня были проблемы с компиляцией, но он компилировался при сохранении. Я просто не включил панель инструментов обозревателя решений, чтобы показать все файлы.
Файл был там и с нетерпением ждал добавления в проект.
источник
Здесь точно такая же проблема. Я использую обновление 3 для Visual Studio 2015 и TypeScript 2.9.2.0. В инструментах / опциях / проектах и решениях / внешних веб-инструментах я обновил $ (PATH) до второй позиции. При всех этих конфигурациях compileOnSave: true у меня не работает. Обходное решение - открыть командную строку, запустить
ng build --watch
на стороне и позволить узлу позаботиться об автоматической компиляции.источник
У меня была похожая, но не такая же проблема в Visual Studio 2019
Я установил старую версию TypeScript 2.9, перезапустил VS, а затем он ожил.
источник