CommonJSES模块系统
设计用于服务器端JavaScript环境设计用于服务器端和浏览器端
异步模块加载同步模块加载
模块同步加载模块异步加载
每个模块只有一个默认导出多个命名导出和默认导出
使用require导入模块使用importexport导入/导出
CommonJS模块在运行时动态加载ES模块在编译时静态解析
适用于服务器端应用适用于服务器端和客户端应用
在Node.js中使用在支持ES6的现代浏览器中支持

简单来说,CommonJS是为服务器端环境设计的,依赖于同步模块加载;而ES模块系统旨在支持服务器端和浏览器端,支持异步模块加载,并提供更灵活的导出和导入选项。CommonJS主要用于Node.js,而ES模块在支持ES6的现代浏览器中是被支持的。