ECM modules不能完全替代CommonJS modules吗?
我看很多项目中既有ESM modules
,也有CommonJS modules
,为什么不能统一使用ECM modules
呢?
- 参与项目的人的个人喜好不同?用什么都是可以的,最终可能用到的代码都会被打包整合在一起。
兼容以前用CommonJS module写的内容?但是
import
也是可以导入CommonJS module
的,相反,require
是不能导入ESM module
import()
表达式也是可以支持动态导入的。
ECM modules
还支持CommonJS modules
中所不具备的静态分析
、异步加载
。
不同时提供ESM和CJS,你让这些不支持ES6的浏览器环境和NodeJS环境咋办……