Node 16+ 中 ES 模块和 CommonJS 之间有性能差异吗?

Jac*_*kie 9 node.js typescript es6-modules

我正在开发一个项目,该项目仍然将 TS 转换为 commonJS 以在 Node 上运行。现在该节点已开始转向 ES 模块,从 commonjs 迁移是否有性能优势?或者说差异只是表面上的?

我知道在以前的版本中不支持本机 ESM,因此旧的答案和其他问题似乎已经过时。因此,我似乎无法找到一个好的答案。

Avi*_* Lo 1

CommonJS 同步加载模块,ES 模块是异步的。

使用 require() 的限制之一是它同步加载模块。这意味着模块被一一加载和处理。

正如您可能已经猜到的,这可能会给包含数百个模块的大型应用程序带来一些性能问题。在这种情况下,基于其异步行为, import 的性能可能会优于 require()。

然而,对于使用几个模块的小型应用程序来说,require() 的同步特性可能不是什么大问题。

以上文字直接引用自https://blog.logrocket.com/commonjs-vs-es-modules-node-js/