Вот небольшой внешний модуль, который явно экспортирует модуль:
module Foo {
export var foo = 42;
}
export = Foo;
Сгенерированный для этого код:
define(["require", "exports"], function(require, exports) {
var Foo;
(function (Foo) {
Foo.foo = 42;
})(Foo || (Foo = {}));
return Foo;
});
Это похоже на плохой AMD, так как вам требуется магическая зависимость «экспорт», но затем вы не используете ее и вместо этого напрямую возвращает Foo.
Это раздражает минималистичных загрузчиков AMD, поскольку они не могут предположить, что объект, возвращаемый вашим модулем, является вашим объектом «экспорта», и должны догадываться, что вы действительно хотели вернуть что-то, что перекрывает запрашиваемый вами объект «экспорта».
Кроме того, зачем объявлять зависимость от require, когда оно не используется?
Похоже на разумное предложение
Одобренный
ТАК вопрос, который я задал по этому поводу: https://stackoverflow.com/questions/44836084/omit-require-and-exports-from-typescript-emitted-amd-dependencies
Это уже реализовано? Мне это нужно...
@amandaol теги по проблеме указывают на то, что это должно быть реализовано сообществом. В сочетании с тем, что проблема все еще не решена, означает, что она не была реализована.
Что бы это ни стоило, теперь мы используем amdextract
в нашем конвейере сборки после tsc
чтобы удалить ненужные require
и exports
из сгенерированного JS.
Самый полезный комментарий
ТАК вопрос, который я задал по этому поводу: https://stackoverflow.com/questions/44836084/omit-require-and-exports-from-typescript-emitted-amd-dependencies