1、写法
CommonJs: require + module.exports
ES6: import + export / export default
2、执行时机
CommonJs: 运行时
ES6: 编译时。编译时就能确定模块的依赖关系,以及输入和输出的变量。
目的:静态优化
- 静态语法分析,如typeScript
- 按需加载 import { getCache, setCache } from 'cache' 只会打包用到的这两个模块
3、输出
CommonJs: 值的拷贝。加载后有缓存,第一次以后取缓存
ES6: 值的引用。被调用模块有修改会影响到调用处