Форматирование скобок TypeScript

Недавно моя команда заметила, что результат компиляции файлов TypeScript в VS 2013 отличается от скомпилированного в VS 2015 тем, что стиль скобок самовыполняющейся функции в конце каждой функции немного отличается.

Разница выглядит так: введите здесь описание изображения

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

Как только вся наша команда обновилась до VS 2015, проблема исчезла, за исключением одного человека в нашей команде, который все еще видит эти незначительные изменения каждый раз, когда строит на своей машине. Мы все используем Visual Studio 2015 с установленным TypeScript 1.8.6.0.

Мы рассмотрели параметры в разделе «Свойства проекта» -> «Сборка TypeScript», чтобы убедиться, что все установлено одинаково, и это так. Мы также проверили, что все настроено одинаково в Инструменты -> Параметры -> Текстовый редактор -> TypeScript между двумя машинами.

Файл .csproj настроен с <TypeScriptToolsVersion>1.8</TypeScriptToolsVersion>, что, очевидно, одинаково для обеих машин.

Единственная разница, которую мы можем понять, заключается в том, что парень, который компилирует компьютер по-другому, экспортировал свои настройки VS 2013 и импортировал их в VS 2015, в то время как остальные из нас только что начали с 2015 года, хотя мы проверили, что все соответствующие настройки являются такой же.

Есть ли где-то скрытые настройки или файл конфигурации, которые могут привести к тому, что компилятор TypeScript будет вести себя иначе, чем мы упускаем?


person Brad Westness    schedule 18.03.2016    source источник
comment
Я думаю, что предлагаемый шаблон - не проверять скомпилированные файлы...   -  person Heretic Monkey    schedule 18.03.2016


Ответы (1)


Если вы используете TypeScript, нет необходимости возвращать файлы .js или .js.map. Вы также не хотели бы возвращать какие-либо типизации, которые вы устанавливаете через типы или tsd.

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

person wjohnsto    schedule 18.03.2016
comment
Это не так просто, это должно быть такое же решение, как проверять или не проверять node_modules. Есть статьи с плюсами и минусами. Главный минус в том, что пока нет версии для типизации, а вы хотите быть стабильной с версией ваших js-файлов. И вы всегда хотите иметь возможность их использовать, даже если кто-то испортит пакет или даже в сценарии, если npm не работает. - person Slava Shpitalny; 20.03.2016
comment
В нашем случае я не уверен, настроен ли сервер сборки для компиляции файлов TypeScript. Кроме того, они должны быть включены в решение, иначе они не будут опубликованы, верно? Кажется странным иметь файлы, которые включены в решение, но которые вы не регистрируете в своем репозитории SCM. В любом случае, я хотел бы устранить основную причину, а не просто обойти ее. - person Brad Westness; 20.03.2016
comment
@СлаваШп. Я считаю, что вы можете указать версии фиксации для типизации, но я согласен, что это не так черно-бело, как я сказал. Брэд, я не могу дать вам ответ на ваш конкретный вопрос. По моему опыту, я обычно настраиваю сервер сборки так, чтобы максимально точно имитировать процесс сборки, который у меня есть локально. Это означает компиляцию файлов TS. - person wjohnsto; 21.03.2016
comment
@wjohnsto Это правда, вы можете указать версии, но, насколько я вижу, обычно этого никто не делает. Это редкость, чтобы увидеть - person Slava Shpitalny; 21.03.2016