commonjs、AMD、CMD

webpack运行在node.js上,所以模块化规范也同node.js 使用的是commonjs规范

commonjs规范内容

一个文件就是一个模块,模块间作用域互不影响

  • 模块的定义 module.exports
  • 模块的引用 require(‘标识符’)
  • 模块标识符

服务端

commonjs规范为同步加载,适用于服务端,在浏览器中js加载会阻塞页面渲染,因此同步不适用

浏览器端

产生了amd(require.js)和cmd(sea.js)规范。

  • amd 异步模块定义
  • cmd 通用模块定义
    两者都是进行异步加载。
    amd依赖前置,依赖加载完后立即执行,执行顺序不定,体验好(提前执行完成);
    cmd依赖后置,依赖加载完不执行,require时按顺序执行,性能好(不需要的不执行)

webpack打包

webpack打包后的文件,将依赖都打包到同一文件中,通过id作为模块的标识。当文件很大时,webpack借鉴amd对代码进行拆分code splitting,需要用到时再加载进来。

es6中import

import使用bable转换后会变为commonjs的require,这时如果直接放到浏览器中是无法运行的,还需要打包 如上webpack打包(预编译)或使用browserify

  • webpack 可以处理一些其它静态资源等
  • browserify 处理js包依赖
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值