Я пытаюсь запустить typescript в appharbor, используя шаблон проекта typescript html5.
Я скопировал целевую папку Typescript из папки MSBuild и папки SDK в свой проект, локально все работает, однако, когда я нажимаю на appharbor, я получаю сообщение об ошибке, подробно описанное ниже.
Я также позволил себе изменить цель машинописного текста, перейдя от поиска SDK в папке Microsoft SDk к моей папке «vendors».
Версия компилятора машинописного текста 0.9.1.1
Сообщение об ошибке я получаю следующее:
error MSB6006: "tsc.exe" exited with code 1
Я получаю следующий вывод задачи машинописного текста в моей сборке.
CompileTypeScript:
D:\temp\bn4vn5tf.fls\input\test\..\Vendors\TypeScript\tsc.exe --removeComments --declaration --module AMD --out ".\js\all.js" --target ES5 "app.ts"
Ниже вы можете увидеть ошибку.
CompileTypeScript:
Cannot initialize ActiveScript
D:\temp\bn4vn5tf.fls\input\vendors\TypeScript\Microsoft.TypeScript.targets(72,5): error MSB6006: "tsc.exe" exited with code 1. [D:\temp\bn4vn5tf.fls\input\test\test.csproj]
Я создал публичный список с полным выводом сборки.
https://gist.github.com/dmportella/6470465
Я также создал суть для цели машинописного текста, чтобы вы могли видеть изменения, которые я в нее внес.
https://gist.github.com/anonymous/6470504
Спасибо и заранее
ОБНОВЛЕНИЕ
Как предложил Райан, я перешел с tsc.exe на запуск файла tsc.js с помощью nodejs. Мне пришлось добавить Typescript SDK и двоичные файлы Nodejs в мой репозиторий GIT (что в любом случае является хорошей практикой) и, наконец, добавить требуемую задачу exec в файл проекта машинописного текста.
Список вещей, которые вам нужно сделать.
- Добавьте Nodejs в свой репозиторий
- Добавьте Typescript SDK в свой репозиторий
- Удалите импорт для машинописных целей из вашего проекта.
- Добавьте задачу exec для выполнения tsc.js с помощью nodejs.
См. ниже MSBuild xml, который я использую в своем проекте.
<!-- Target ignored as it will not work on appharbor -->
<!--<Import Project="$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets" />-->
<Target Name="BuildTypeScript" BeforeTargets="build">
<Message Importance="high" Text="Running TypeScript Compiler using NodeJs" />
<Message Importance="high" Text="..\Vendors\nodejs\node.exe ..\Vendors\TypeScript\tsc.js --removeComments --declaration --module AMD --out $(TypeScriptOutFile) --target ES5 @(TypeScriptCompile)"/>
<Exec Command="..\Vendors\nodejs\node.exe ..\Vendors\TypeScript\tsc.js --removeComments --declaration --module AMD --out $(TypeScriptOutFile) --target ES5 @(TypeScriptCompile)"/>
</Target>