Aquí hay un pequeño módulo externo que exporta explícitamente un módulo:
module Foo {
export var foo = 42;
}
export = Foo;
El código generado para esto es:
define(["require", "exports"], function(require, exports) {
var Foo;
(function (Foo) {
Foo.foo = 42;
})(Foo || (Foo = {}));
return Foo;
});
Esto se siente como una mala AMD ya que está requiriendo la dependencia mágica de "exportaciones", pero luego no la usa y en su lugar devuelve Foo directamente.
Es molesto para los cargadores AMD mínimos, ya que no pueden asumir que el objeto devuelto por su módulo es su objeto de "exportaciones" y tienen que adivinar que realmente pretendía devolver algo que anuló el objeto de "exportaciones" que solicitó.
Además, ¿por qué molestarse en declarar una dependencia en 'require' cuando no se usa?
Parece una propuesta razonable
Aprobado
SO pregunta que hice con respecto a esto: https://stackoverflow.com/questions/44836084/omit-require-and-exports-from-typescript-emitted-amd-dependencies
¿Esto ya se ha implementado? Lo necesito...
@amandaol las etiquetas sobre el problema indican que depende de la comunidad implementarlo. Junto con el problema que aún está abierto, significa que no se ha implementado.
Por lo que vale, ahora usamos amdextract
en nuestra canalización de compilación después de tsc
para eliminar los require
y exports
innecesarios del JS emitido.
Comentario más útil
SO pregunta que hice con respecto a esto: https://stackoverflow.com/questions/44836084/omit-require-and-exports-from-typescript-emitted-amd-dependencies