在js中,模块化有4种,常见的写法
1.CommonJS:
module.exports和exports不能混用,若混用了,以module.exports为主
使用require()导入其他模块,使用module.exports导出模块
1.module.export的暴露方法
如果这样写,就相当于在后面的空对象里面创建了一个新属性a
通过const aa=require('地址') 引入,调用时通过aa.a来调用
如果这样写,就相当于自己在堆中重新弄了一个对象
2.export的暴露方法
如果用这种方法写,到浏览器上面去运行会报错,require是node.js特有的
在浏览器端,模块化的代码要经过Browserify进行翻译
ES6模块化
每一个文件都是一个模块
要借助Babel和Browserify依次编译代码,才能在浏览器上面运行,转成es5才能运行
暴露模块:
1.分别暴露
2.统一暴露
3.默认暴露(只能暴露一次)
import mo from '地址'
4.多种暴露
AMD(Asynchronous Module Definition):
异步模块定义,使用 define()
声明模块并通过回调函数来导出模块。
UMD(Universal Module Definition):
通用模块定义,既支持 CommonJS 也支持 AMD,同时也支持直接导出变量的方式。