Я уверен, что здесь я пропустил нечто совершенно тривиальное, но для его жизни я не могу понять это. Только недавно я начал использовать AMD (RequireJS). Мое приложение будет (будет) работать в браузерах.
Настройка
В TypeScript 1.8, возможно до tsc
весь проект, состоящий из внешних модулей, в один выходной файл при использовании AMD.
По этой причине я, наконец, решил оставить внутренние модули позади и сделать все мои проекты VS2015 .ts
и .tsx
внешними модулями, а затем скомпилировать их в один файл со следующими аргументами компилятора:
--module AMD --outFile main.js
Выход
Файл с одним выходом main.js создается, как ожидается, в нем перечислены все модули, которые являются частью проекта:
main.js
define("Project/MainModule", ["require", "exports" ...], function (require, exports ...) {
"use strict";
console.log("MainModule defined");
// ...
});
...
Использование (?)
Теперь, как мне получить Project/MainModule
для запуска из - например - index.html(чтобы он регистрировал "MainModule defined" в консоли)? Я загрузил RequireJS для обработки синтаксиса AMD, а также файл main.js, указанный для немедленной загрузки:
index.html
<script data-main="main" src="Require.js"></script>
Это правильно загружает main.js
, который я обеспечил включением вызова console.log
после огромного списка определений в этом файле (внешние модули). Простите меня, если это тривиальный вопрос, я не мог найти ничего о том, как использовать скомпилированное приложение с этим подходом (возможно, я не использовал правильные ключевые слова?).
Изменить: я попробовал модуль с именем:
index.html
<script>
window.onload = function () {
require(["Project/MainModule"], function () {
// this
});
}
</script>
... но это нехорошо, RequireJS не может найти модуль.