2015-04-07 3 views
2

Я добавил Typcript к моему процессу сборки, но получаю ошибку Write to file failed, потому что целевой файл js является только для чтения, и это потому, что я включаю испущенный js-файл в TFS.Возможно ли компилировать файлы машинописных файлов локально, но не на сервере сборки?

Я знаю, что могу удалить файл js из TFS и всегда генерировать «на лету», но я не хочу этого делать, потому что я хочу включить их в проект, и развертывание на сервере сборки завершится неудачно, если я делайте это с файлами, которые не находятся в TFS.

Я мог use a pre-build step to remove the Read Only attributes но это похоже kludgy.

То, что я действительно хочу, это включить файлы js и предварительно скомпилировать их в build, , но только на моем локальном компьютере-разработчике, а не на сервере сборки. Я был бы даже доволен составлением их на save и не на сборке. Но я не могу найти способ сделать это.

+0

Я думаю, вы должны работать над тем, чтобы ваш сервер сборки мог скомпилировать файлы машинописных файлов без сбоев. Это проблема, которая нуждается в разрешении. –

+0

Это не удается, потому что файл только для чтения, и именно так работает TFS, без хаков, чтобы обойти его. Но теперь я начинаю думать, что я должен просто не включать файлы js в TFS в первую очередь. –

+0

Да, не включайте файлы js. Там действительно не нужно. –

ответ

6

Я знаю, что вы заявили, что хотите включить их в свой проект, поэтому вы хотите включить js-файлы в систему контроля версий (TFS), но IMO, которая не подходит для принятия по той же причине, которую вы делаете не проверять ваши DLL.

В случае TypeScript файлы * .ts - это ваш исходный код, а * .js - это ваш скомпилированный вывод, который легко воспроизводится в процессе сборки, будь то MsBuild или gulp/grunt.

Если вы используете библиотеки для комплектации/мини-библиотек, вам не нужно беспокоиться, поскольку файлы, включенные в них, основаны на структуре файлов, а не на структуре проекта. Вы можете просто включить необходимые файлы/каталоги в нужные пакеты.

Я знаю, что это может быть не тот ответ, который вы искали, но я чувствую, что он имеет место как потенциальное решение в отношении того, как обрабатывать выходные данные js-файлов из исходного кода ts.

+2

После прочтения вашего ответа, я думаю, что я убежден, что вы правы. Спасибо за подробное объяснение. –

+0

Это небольшой сдвиг в мышлении, поскольку многие из нас привыкли включать наши JS-файлы в наши проекты и поэтому вынуждены включать их даже после переноса/обновления/изменения на TypeScript. – Brocco

+0

С соответствующими записями в web.config сервер может обслуживать JS-файл при запросе файла TS. Это позволяет вам ссылаться на TS-файл в вашей разметке, что устраняет болотировку обслуживания, указывая истинный исходный код. –