- CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
- CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。数据动态更新。
CommonJS 和 AMD 模块,都只能在运行时确定这些东西。CommonJS 模块输出的是值的缓存,不存在动态更新。比如,CommonJS 模块就是对象,输入时必须查找对象属性。
Node遵循CommonJS规范。
http://naotu.baidu.com/file/f03f6830a9a0de7bafa2a987cc065e46?token=35d035cc963f2d82