我看到有文章解释CommonJS和AMD的区别,但我无法理解CommonJS和SystemJS之间的关系。在AngularJS 2开发中都使用了这两种模块加载器,既然它们都是模块加载器,为什么我们需要同时使用这两个呢?
我看到有文章解释CommonJS和AMD的区别,但我无法理解CommonJS和SystemJS之间的关系。在AngularJS 2开发中都使用了这两种模块加载器,既然它们都是模块加载器,为什么我们需要同时使用这两个呢?
CommonJS是一种规范,而SystemJS是一个开源的JavaScript加载器,遵循CommonJS等规范。CommonJS规范定义了JavaScript模块的工作方式,如何公开它们以及如何调用它们。SystemJS是一个加载器,遵循CommonJS和其他规范。
以下是一个简单的20分钟YouTube视频教程,它解释了CommonJS模块规范的外观以及SystemJS如何尊重该规范。
在NodeJS中,CommonJS用于在构建时要求模块。例如,这些模块被编译,然后与所有代码一起提供给浏览器。
然而,SystemJS替代了requireJS。 SystemJS在运行时动态加载模块。在Angular2中,如果您观察浏览器的NET选项卡,您将看到SystemJS随着您探索应用程序的更多部分而加载文件。
您还可以在单击事件处理程序或其他某些地方要求模块。