Я новичок в Typescript и последние несколько дней работал в Visual Studio 2013 Update 2 (который изначально включает в себя всю поддержку).
У меня есть следующие параметры, выбранные в Visual Studio на странице свойств моего проекта.
Это означает, что при сохранении файла он автоматически скомпилирует все файлы Typescript и создаст один файл RRStore.js
. Затем я просто включаю это, используя BundleManager в ASP.NET, как если бы это был какой-то старый JS файл. Я не использую загрузчики модулей, так как там не много JS-кода.
Чтобы разрешить зависимости в правильном порядке, TS-компилятор нуждается в файле _references.ts
, поэтому я создал его следующим образом:
/// <reference path="RR.ErrorHandling.ts" />
/// <reference path="RR.JQueryPlugins.ts" />
/// <reference path="RR.Util.ts" />
/// <reference path="viewmodel/UserViewModel.ts" />
/// <reference path="viewmodel/AddressViewModel.ts" />
/// <reference path="viewmodel/ProductViewModel.ts" />
/// <reference path="viewmodel/CartItemViewModel.ts" />
/// <reference path="viewmodel/CheckoutViewModel.ts" />
/// <reference path="viewmodel/StoreWizardViewModel.ts" />
/// <reference path="viewmodel/DefenderWizardViewModel.ts" />
/// <reference path="viewmodel/MainViewModel.ts" />
/// <reference path="RR.YoutubeLoader.ts" />
Этот файл означает, что когда я ударил Ctrl+S
в Visual Studio после редактирования файла TS, он объединит все мои другие файлы TS вместе в этом порядке, чтобы такие вещи, как прототипы, были верны для наследования.
Это было нормально работать при Ctrl+S
при сохранении файла TS.
Затем мне пришлось внести изменения в некоторый код С#, после чего, конечно, мне нужно было нажать Ctrl+F5
для создания проекта. К моему удивлению, в браузере появились странные ошибки JS - о прототипах, не существующих на объектах.
Я просмотрел сгенерированный Typescript файл RRStore.js
в браузере и просмотрел порядок всех моих файлов, и он поместил файл RR.YoutubeLoader.ts
FIRST.
Это странно! (не в последнюю очередь потому, что он LAST в моем списке ссылок выше.)
Я пошел в этот файл и нажал Ctrl+S
, обновил RRStore.js
и все вернулось в правильном порядке.
Другими словами, когда я делаю полную сборку, порядок файлов в _references.ts
не соблюдается, но когда я просто нажимаю Ctrl+S
, это так. Что происходит?