CommonJS理解以及浏览器的运行

1.NodeJS运行的是CommonJS模块,但是浏览器中不能运行CommonJS,就是我们写的代码使用到了module.export和require来分发JS文件,这种叫做CommonJS模块,因为NodeJS自己定义了四个变量module,exports,require,global,由于浏览器中没有这四个变量所以没法解析(实际上这四个变量的作用是全局变量,module.exports存储我们的JS导出的变量,然后通过require来加载存储再里面的变量)
从而达到文件分发的目的。
CommonJS是同步加载,适用于服务器端的模块加载,因为大家在文件的时间就是等待机器读取的时间,但是浏览器不行,他服务端获取文件还取决于网速的快慢,一旦使用同步等待的过程将处于假死状态,所以出来了AMD规范,异步加载模块。

AMD比较适合浏览器环境。目前,主要有两个Javascript库实现了AMD规范:require.js和curl.js。

browerify 就是这么实现的
,browerify 将所有模块放入一个数组,id 属性是模块的编号,source 属性是模块的源码,deps 属性是模块的依赖。

因为 main.js 里面加载了 foo.js,所以 deps 属性就指定 ./foo 对应1号模块。执行的时候,浏览器遇到 require(’./foo’) 语句,就自动执行1号模块的 source 属性,并将执行后的 module.exports 属性值输出。

在理解require.js 参考另一篇文章:https://blog.csdn.net/lengyue1084/article/details/78284518?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-5.no_search_link&spm=1001.2101.3001.4242.5

简单来说就是 下载require.js 这个资源,有个主程序的入口,main.js
使用define定义资源和依赖,使用require来加载资源,NodeJs是相同的原理,只不过是被隐式化了

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值