有没有办法在没有任何模块加载器的情况下使用角度2?

时间:2016-04-30 15:16:46

标签: typescript angular systemjs

angular 2 official site上的快速入门部分介绍了如何运行最简单的角度2应用程序。默认情况下,SystemJS用作模块加载器。还有一个说明,说有其他选择可以正常工作。我理解模块加载器的好处,但有没有办法在没有任何模块加载器的情况下运行angular 2应用程序?

当我只删除SystemJS配置和SystemJS源脚本标记时,我在angular2.dev.js文件的控制台中收到错误:

Uncaught ReferenceError: System is not defined

看起来角度2本身使用SystemJS。那么,有没有办法在没有任何模块加载器的情况下使用角度2?

2 个答案:

答案 0 :(得分:1)

是的,你可以使用普通的ES5 javascript。试试this simple example

此外,您可以尝试oficial javascript 5 min quickstart,他们在这里创建了一个示例,考虑到“ES5 JavaScript没有本机模块系统。我们可以使用几种流行的第三方模块系统。相反,为简单起见,为了避免挑选收藏夹,我们将为我们的应用程序创建一个全局命名空间。“。

单个全局命名空间(并加载教程中描述的正确脚本(angular2-all.umd.js等))是在没有模块加载器的情况下运行的方法之一。

此结构也适用于Typescript或ES6。你只需要添加你最喜欢的转发器(BabelTraceur等)来编译你的代码到ES5并将它与教程中的其余代码一起使用,但我想你已经有了运行

答案 1 :(得分:0)

根据this blogpost,您可以使用TypeScript编译器遍历导入并捆绑它们。相关功能是Concatenate AMD and System modules with --outFile。我没有测试过这个。从技术上讲,SystemJS仍然是模块加载器,但它应该是标准化的。