ES6 Module VS CommonJS

185 阅读1分钟

ES6 Module和CommonJS模块的区别:

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