2014-01-21 72 views
4

我有内部打字模块,这个模块分成几个文件。将多个文件内部模块编译成一个文件AMD模块

a.ts

/// <reference path='_all.ts' />  
module A { 
    // some code 
} 

b.ts

/// <reference path='_all.ts' />  
module A { 
    // some code 
} 

_all.ts

/// <reference path='a.ts' /> 
/// <reference path='b.ts' /> 

是否可以编译这个模块到一个文件,并使其AMD模块?

一般来说,我该如何“导入”内部模块到外部?例如,当我尝试添加新的文件export.ts:

/// <reference path='_all.ts' /> 
export module B { 
    //some code that using module A 
} 

和饲料export.ts到TSC,它编译它export.js AMD模块,但不包括“A”模块代码在所有。

EDITED 实施例:https://gist.github.com/artemkozlov/8550165

回答

1

要编译到单个文件中使用--out FILE命令行参数。这会将所有内部模块合并到一个文件中。作为AMD使用-m amd编译所有外部模块。在这两种情况下,您还需要-d,因为它会生成一个声明文件以便与其他项目一起引用。

无法编译多个内部模块并生成一个外部模块。见12790262/how-to-spread-module-across-multiple-amd-files

+0

soo'tsc a.ts b.ts --out out.js -m amd -d' should work? – basarat

+0

是的,它会生成一个单独的js文件和一个'''out.d.ts''文件,您可以在其他项目中引用它。 –

+0

谢谢你的回答。但它似乎并不像我期待的那样工作。它不会生成单个输出文件。这是我正在做的和我得到的结果https://gist.github.com/artemkozlov/8550165 – aindl

相关问题