如何将Angular2 TypeScript应用程序编译为单个文件?

Gra*_*Fox 10 commonjs typescript tsc systemjs angular

我意识到我可以编译我的应用程序,tsc my_app.ts --target system它将为每个导入的模块生成一个SystemJS包装文件,这很棒,但它生成匿名(无名)函数,所以我不能只将它们连接到一个文件.

我想过提出这个问题"如何将TypeScript编译为命名的SystemJS模块",但我的目标只是将我的Angular2应用程序编译为单个文件SystemJS.

Gra*_*Fox 10

--outFile选项适用于--module自TypeScript 1.8以来的选项(对于AMD和SystemJS),因此可以本机完成.这是更改日志.TypeScript还会自动提取所有不驻留在外部模块中的依赖项,因此仅仅编译主应用程序文件就足够了.

如果Angular 2没有切换到SystemJS,那么将你的应用程序捆绑在一个文件中的方式应该像使用像 tsc app.ts --target ES5 --module system --experimentalDecorators --moduleResolution node --emitDecoratorMetadata --outFile app.js

之后,应该可以使用以下内容来引导应用程序:

<script src="/bower_components/system.js/dist/system-register-only.js"></script>
<script src="/node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="/app.js"></script>
<script>
    System.import('app');
</script>
Run Code Online (Sandbox Code Playgroud)