SystemJS和CommonJS有什么区别?

14

我看到有文章解释CommonJS和AMD的区别,但我无法理解CommonJS和SystemJS之间的关系。在AngularJS 2开发中都使用了这两种模块加载器,既然它们都是模块加载器,为什么我们需要同时使用这两个呢?

2个回答

8

CommonJS是一种规范,而SystemJS是一个开源的JavaScript加载器,遵循CommonJS等规范。CommonJS规范定义了JavaScript模块的工作方式,如何公开它们以及如何调用它们。SystemJS是一个加载器,遵循CommonJS和其他规范。

以下是一个简单的20分钟YouTube视频教程,它解释了CommonJS模块规范的外观以及SystemJS如何尊重该规范。

https://www.youtube.com/watch?v=jN4IM5tp1SE


6

在NodeJS中,CommonJS用于在构建时要求模块。例如,这些模块被编译,然后与所有代码一起提供给浏览器。

然而,SystemJS替代了requireJS。 SystemJS在运行时动态加载模块。在Angular2中,如果您观察浏览器的NET选项卡,您将看到SystemJS随着您探索应用程序的更多部分而加载文件。

您还可以在单击事件处理程序或其他某些地方要求模块。


3
比较SystemJS、CommonJS、RequireJS和AMD,探讨它们的适用场景,规范比较,以及哪些客户端/服务器端JS库/框架使用了它们中的哪一个。 - Andy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接