Ответ 1
Эта проблема, похоже, была устранена с помощью последнего обновления расширения TypeScript Language Services
.
См. этот ответ для получения инструкций по применению этого обновления.
Функция "Скомпилировать при сохранении" не работает для меня после обновления до Visual Studio 2015. Когда я вношу изменения в файл .ts
в моем проекте и сохраняю, строка состояния в нижней части IDE говорит Output(s) generated successfully
, но сгенерированный файл .js
не изменяется.
Вот что я пробовал:
добавив следующее к корневому элементу <Project>
в моей .csproj
:
<PropertyGroup>
<TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
</PropertyGroup>
проверка и снятие флажка "Автоматически компилировать TypeScript файлы, не являющиеся частью проекта" в Tools -> Options -> TypeScript -> Project
:
двойная проверка, чтобы убедиться, что в моем проекте отмечен параметр "Скомпилировать с сохранением" TypeScript Свойства сборки:
Что мне не хватает?
В качестве побочного примечания шаг компиляции TypeScript работает так, как ожидалось, при срабатывании регулярной сборки.
Эта проблема, похоже, была устранена с помощью последнего обновления расширения TypeScript Language Services
.
См. этот ответ для получения инструкций по применению этого обновления.
Для меня это была опция tsconfig.json
:
"compileOnSave": true,
"compilerOptions": { ... },
Перезапустите Visual Studio, чтобы это изменение вступило в силу.
Я наткнулся на эту проблему сегодня: я исправил это, используя новую опцию компилятора "watch":true
, также доступную через JSON в самых последних версиях TypeScript:
{
"compilerOptions": {
"watch": true
}
}
После этого мне пришлось решить еще одну проблему, связанную со следующей ошибкой, появившейся в окне вывода:
Object doesn't support property or method 'watchFile'
Оказалось, что моя система использовала устаревшую версию TypeScript (1.0.x), несмотря на то, что я был уверен, что у меня есть более новая версия, которая поставляется с Visual Studio 2015 Обновление 1 (1.7). Если вы столкнулись с этой проблемой, вы можете легко проверить свою версию tsc, введя tsc -v
из командной строки.
Если он говорит 1.0.x
или что- 1.7, вероятно, это связано с тем, что у вас есть несколько старых ссылок в переменной среды PATH. Убедитесь, что у вас установлено 1.7 или более поздней версии, проверив внутри папки Microsoft SDKs, которая используется Visual Studio для установки пакетов TypeScript по мере их обновления:
C:\Program Files (x86)\Microsoft SDKs\TypeScript
Если нет, обновите соответствующим образом. Откройте CPanel > Система > Дополнительно > Переменные среды, выберите Системные переменные и нажмите на Изменить; просмотрите список, который ищет какую-либо ссылку на папку TypeScript, измените один из них, чтобы он указывал на вашу последнюю установленную версию TypeScript (1.7
или выше) и удалил любые другие обманы. Смотрите также снимок экрана ниже:
Для получения дополнительной информации прочитайте этот пост.
В моем случае я установил Visual Studio Community 2015 вместе с VS 2012. Я использовал Web Essentials для typescript в 2012 году, который, как представляется, конфликтует с 2015 годом.
Удаление Web Essentials в 2012 году исправило проблему для меня.
С помощью typescript 2 вам нужно удалить "outDir": из вашего tsconfig. Исправьте ошибку для меня в визуальной студии.
В свойствах проекта → "TypeScript Build" вы также можете просто снять флажок "Не испускать выходы, если сообщаются какие-либо ошибки". Проверяя, что он, кажется, деактивирует transpiling при сохранении, где есть ошибка или нет.
"compileOnSave": true,
не работал у меня. Наконец, я понял, что Visual Studio не оценивает значение "compileOnSave": true,
, если оно определено в другом файле .json
, который вы расширяете. Он должен быть в корне, чтобы он работал.
Решение:
Для меня, и я уверен, что это также относится к другим, это было связано с ошибкой в 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.
только каталог goto, где файл typescript находится в командной строке и запускает команду, вы увидите, что при каждом сохранении вашего файла .ts файл .js автоматически обновляется.
то есть.
c:\Project>tsc typescriptFileName.ts -w
теперь минимизируйте командную строку