2016-11-19 9 views
3

У меня есть событие post build, которое запускает код отражения над некоторыми из моих контроллеров для генерации определения моих маршрутов в машинописном машинописном тексте. Если я активирую опцию TypcriptCompile в моем csproj, генерация DLL завершится неудачно, если какой-либо файл машинописных файлов будет неправильным. Тогда событие post post завершится неудачно, потому что dll не будет существовать.Как начать сборку машинописных записей при событии post build

Я хочу реализовать следующую схему:

  1. построит DLL без машинописи компиляции
  2. Запустить мое событие после сборки для создания файла машинописи с моим определением маршрута
  3. Run другого пост сборка событие компилировать/проверять файлы ts, если они неверны

Первые 2 шага работают нормально, но я застрял на последнем. Не удалось найти командную строку для запуска компиляции скриптов в файле csproj.

+0

Включает ли ваш проект файл 'tsconfig.json'? – yuxhuang

+0

Нет, но я могу включить его, если мне не нужно добавлять новую запись для каждого файла ne ts. – Dreeco

ответ

0

Предположим, что в событии после сборки исходные файлы TypeScript создаются под .\tsc-src. И вы используете TypeScript 2.0.

Вы можете включить tsconfig.json файл в папке tsc-src с содержимым:

{ 
    "compilerOptions": { 
    "baseUrl": "", 
    "declaration": false, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": ["es6", "dom"], 
    "mapRoot": "./", 
    "module": "es6", 
    "moduleResolution": "node", 
    "outDir": "../tsc-dist", 
    "sourceMap": true, 
    "target": "es5" 
    } 
} 

Предполагая, что ваш рабочий каталог находится в папке проекта, если вы уже установили машинопись и tsc в вашем PATH, вы можете добавьте новую команду события post-build tsc -p ./tsc-src для компиляции исходных файлов типа TypeScript.

В зависимости от вашего требования, вы можете изменить поле outDir на поле outFile, чтобы испустить один файл JavaScript. Вот док-код pointer.

+0

Я отвечаю довольно поздно и не нашел времени, чтобы попробовать ваше решение. Но, похоже, с вашим решением будет затронута иерархия и организация всех моих ts/js-файлов. Я искал подход csproj, основанный на поддержании той же организации. Есть ли способ с вашим решением, чтобы все мои файлы csproj ts выводили js в файл js с тем же именем и в той же папке? (Я говорю о команде ["outDir": "../tsc-dist",] – Dreeco

+0

@Dreeco Мне любопытно, почему вы хотели бы, чтобы файлы ts находились в одной папке? Вы также проверяете их на свое репо? – yuxhuang

+0

@Dreeco Я думаю, вы можете просто удалить поле 'outDir' для достижения своей цели. Однако я никогда не использовал 'tsconfig.json' без опции' outDir' или 'outFile'. – yuxhuang