ES6 Module和CommonJS模块的区别:
CommonJS其实是对模块的浅拷贝,可以对其进行更改ES6 Module是只读,不能更改其值,类似const,报错信息也是一模一样的Uncaught TypeError: Assignment to constant variable.
- CommonJS的
require语法是同步的,所以就导致了CommonJS模块规范只适合用在服务端。 - 而
ES6 Module无论是在浏览器端还是服务端都是可以使用的,但是在服务端中,还需要遵循一些特殊的规则才能使用 ;
- CommonJS 模块是运行时加载。
- 而ES6 模块是编译时输出接口,使得对JS的模块进行静态分析成为了可能;
- CommonJS并不能
requireES6模块,在NodeJS中,两种模块方案是分开处理的。 - 在
ES6 Module当中,是支持加载CommonJS模块的。