TypeScript управление пакетами
Похож, что TypeScript имеет приятную модульную систему, однако это заменяет необходимость чего-то вроде requirejs? Другими словами, когда вы "компилируете" пакет TypeScript, он обрабатывает все разрешение зависимостей для вас? Примеры были бы оценены!
Ответы
Ответ 1
TypeScript не имеет загрузчика модуля времени выполнения. Вам все равно необходимо предоставить загрузчик модуля для использования во время выполнения, например. требуется js. TypeScript поддерживает создание кода JavaScript, совместимого с commonJS (для скриптов node.js) и загрузчиков AMD (например, requireJS). Чтобы указать, какой из них следует использовать в коммутаторе "-module" для компилятора с "amd" или "commonjs".
Вот как вы экспортируете модуль в TypeScript:
export module depModule {
export class A {
}
}
а вот сгенерированный код JavaScript с ключом -module amd:
define(["require", "exports"], function(require, exports) {
(function (depModule) {
var A = (function () {
function A() { }
return A;
})();
depModule.A = A;
})(exports.depModule || (exports.depModule = {}));
})
Ответ 2
TypeScript может испускать код, который будет работать как с совместимыми с AMD загрузчиками зависимостей, такими как requirejs или commonjs, такими как Node. Вы можете контролировать это с помощью опции -module для компилятора. Сам компилятор не обрабатывает разрешение зависимостей во время выполнения, что вам нужно решить, но он пытается найти зависимости во время компиляции, чтобы он мог предоставить вам информацию о типе.
Вы можете увидеть примеры проектов, которые используют модули в тестовом каталоге в CodePlex, этот. Результатом компиляции этих тестовых проектов являются файлы .js, которые будут загружаться либо с помощью, например, requirejs (если вы передадите --module amd) или Node (если вы передадите --module commonjs).
Ответ 3
Если ваше приложение будет состоять только из typescript модулей/файлов, возможно, не использовать загрузчики модулей или другое управление зависимостями. Вам нужно будет включить все зависимости с комментариями и использовать опцию -out компилятора. Например:
tsc --out compiled.js app.ts
Это поставит в compiled.js сгенерированный js для app.ts и всех его зависимостей, включая зависимости зависимостей. Полученный файл затем может быть включен непосредственно в html файл с тегом script. Его также можно минимизировать. Загрузка модуля во время выполнения не поддерживается.