现在后端应该转用esm还是继续保持commonjs?
发布于 6 天前 作者 takayama-lily 544 次浏览 来自 问答

发布package的话又用哪种比较好?

5 回复

可以同时发布 ESM + cjs 。 用 ESM 编写然后用 rollup 打包成 cjs

不得不承认,现在这块确实很纠结。

可以看下官方这个讨论,没吵出个所以然:https://github.com/nodejs/node/issues/33954

如果只考虑node环境使用可以只导出commonjs, 如果支持浏览器环境可以同时导出commonjs和esm,并添加module字段指定导出的esm入口 参考 https://github.com/rollup/rollup/wiki/pkg.module https://nodejs.org/dist/latest-v16.x/docs/api/packages.html#packages_dual_commonjs_es_module_packages

如果只能选一个
一般来说,前端无所谓,因为都会打包,哪个都行
后端的话,commonjs 好一点,因为很多老的且非常常用的包都是 commonjs,所以后端不可能不支持 commonjs

这就象fireofx的扩展从xul 转成webExt一样,只会让firefox 越来越小众 茴香豆有4种写法,写起来没有任何难度,问题的关键是换个写法再写一遍谁来发钱?

回到顶部