ESMODULE
静态引入(要用什么一开始就要想好)
例子 import a from ‘a’
if(ture){
import a from 'a'
} else {
import b from 'b'
}
上述不可以这样判断(无效)
优点
webpack,做代码的预分析,(依赖拓扑),如果是commonJS就会
AMD
动态引入(依赖前置)
require([module], callback);
require(['math'], function (math) {
math.add(2, 3);
});
COMMONJS
动态引入
例子:require(‘path’)
if(ture){
const path = require('path)
} else {
const path = require('fs')
}
上述可以这样判断可用
优点
与AMD相比,耦合性强度会稍微高一点
总结
AMD 和 COMMONJS 是动态的引入,AMD主要是一个依赖前置,COMONJS是require的具体语法, ESMODULE是静态引入