Commonjs,CMD,AMD和cortex介绍

  1. Commonjs 规范
    1. 每个模块
  2. AMD 规范
  3. Cortex
    1. Tip

这里只是一些入门级别的认识,深入一些的可查看我的阅读笔记模块加载系统

Commonjs 规范

commonjs 是服务器模块的规范,nodejs实现了规范

  • 单独的文件就是一个模块,每个模块拥有自己的作用域;

  • 通过module.exports来将对象和方法抛出去;

  • 通过require来引入,就可以访问挂载的对象,并且直接调用变量;

每个模块

  • 每个都有个 module 对象,这个对象不是全局变量,而是本地变量
  • exports = module.exports,可以放弃使用 exports,只使用 module.exports

CommonJS就是个同步加载方案,因为服务器一般文件都在本地硬盘,所以加载比较快


AMD 规范

AMD 是异步模块的定义,模块的加载不影响后面的语句,所有的依赖的语句,会被放在一个加载完才执行的回调函数中,AMD 推崇依赖前置

require(['zepto'],function($){
    $('body');
});

参考了阮一峰老师的文章


##Requirejs
根据 AMD 实现了异步的加载,并且管理了模块的依赖性
简单使用就是去官网下载下,然后 data-main 指定主入口模块

主模块的代码遵循 AMD:

require([],function(){})

加载的模块的写法:

define([],function(){})

参考了阮一峰老师的文章


Cortex

张颖老师cortex,是一个前端解决方案,类似于 npm,提供了模块的管理,加载,本地调试。目前用在点评网的所有的前端项目上

###思想
将多余的事情交给框架

让前端工程师注重在业务逻辑上

解决公共模块版本问题

Tip

  • 一个页面可以通过引入多个 facade 来引入多个项目的前端资源,这样来解耦了页面
  • 这些的模块依赖是在服务器端已然直销并且可以拼装出来了,通过一些算法进行合并和修饰
  • cortex 通过 Semver 来区别进行版本的管理,来看是否兼容来决定加载几个依赖的,nodejs 是只要依赖的就加载,maven 是只加载最新的,都不是最优实现
  • cortex 将静态资源统一加上了版本号来让 cdn 区分是不是该去拿最新的,当发现要更新时,cdn 会与我们的静态服务器进行通信,来拿取。
  • 依赖树的信息通过 neocortex-4j 来吐到页面上,可以并行加载
  • combo 的好处在于一个请求把所有的数据拉回来,其实就是这个请求打到 cdn 上,cdn 发现没有这个结果,就回源,打到我们的服务器上,我们的服务器就会去拼装 js

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com

文章标题:Commonjs,CMD,AMD和cortex介绍

文章字数:695

本文作者:泽鹿

发布时间:2019-08-28, 16:45:23

最后更新:2019-09-02, 14:33:06

原始链接:http://panyifei.github.io/2019/08/28/前端技术/js/框架以及规范/模块引入/Commonjs,CMD,AMD和cortex介绍/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏