2013-09-06 3 views
4

Я пытаюсь получить машинопись для работы на appharbor с использованием шаблона проекта типа html5.Проблемы с созданием машинописных файлов в Appharbor

Я скопировал целевую папку Postscript из папки MSBuild и папки SDK в свой проект, но в любом случае все работает, когда я нажимаю appharbor. Я получаю приведенную ниже ошибку.

Я также взял на себя смелость вносить изменения в целевую страницу ввода текста из поиска SDK в папке Microsoft SDk, чтобы вместо этого посмотреть папку «вендоров».

версия машинописи компилятора является 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

Thx и продвижение

UPDATE

Как Райан предложил я изменился с tsc.exe для запуска файла tsc.js с nodejs я должен был добавить машинописи SDK и двоичные файлы Nodejs в мой репозиторий GIT (что в любом случае является хорошей практикой) и, наконец, добавить требуемую задачу exec в файл проекта машинописного текста.

Перечень вещей, которые вам нужно сделать.

  1. Добавить Nodejs в репозиторий
  2. Добавить машинопись SDk в репозиторий
  3. Удалить импорт для целей машинопись из проекта
  4. Добавьте 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> 

ответ

5

Для использования в TypeScript 0.9.1.1 требуется установить IE10 или более поздней версии. Если это не вариант для вас, вы можете запустить tsc.js через узел.

+0

Ok имеет смысл есть способ изменить цель вызвать nodejs.exe вместо пользователя tsc.exe? – dmportella

+0

Я нашел эту ссылку http://weekly-training.blogspot.co.uk/2012/10/typescript-preview-on-appharbor.html Кажется, что в версии 0.8.0.0 там можно было работать, я буду попробуйте это позже – dmportella

+0

Это просто задача vs, которая не работает с tsc.exe, нуждается в ie10? – dmportella

5

Решение, которое dmportella включило в его ответ, сработало и для меня, однако цель MSBuild не хотела работать только путем копирования и изменения путей.

Вот цель, которая работает для меня (пожалуйста, отмените изменения пути, это не важная часть):

<Target Name="BuildTypeScript" BeforeTargets="build" Outputs="%(TypeScriptCompile.Identity)"> 
    <Message Importance="high" Text="Running TypeScript Compiler using NodeJs" /> 
    <Message Importance="high" Text="..\..\Tools\nodejs\node.exe ..\..\Tools\typescript\sdk\tsc.js --removeComments --declaration --module AMD --target ES5 %(TypeScriptCompile.Identity)"/> 
    <Exec Command="..\..\Tools\nodejs\node.exe ..\..\Tools\typescript\sdk\tsc.js --removeComments --declaration --module AMD --target ES5 %(TypeScriptCompile.Identity)"/> 
</Target> 
Смежные вопросы