53 - 《如何在 CJS 中使用 Pure ESM 依赖》
发布于 2022年2月13日
背景是现在社区有越来越多的 Pure ESM 包,比如 chalk、globby 等 sindresorhus 维护的包,以及 mdx 和 remark 系列,而出于一些原因,比如 require.extensions 在 esm 中没有等价实现,编写工具或框架时不能直接切到 esm,只能用 cjs。所以,摆在面前的问题就是 CJS 中如何使用 Pure ESM 包。
解法 1 是把 require('foo')
改成 await import('foo')
。但有几个问题。1)同步变异步,需注意使用场景是否支持异步,2)jest 不支持 cjs 中引入 esm,所以无法做测试