我们团队的项目内部完全是es6模块(ESM),但是有依赖项还没有制作esm版本。
我们创建了各种解决方案,但它们绝对不是现代的主流解决方案。我指的是将旧格式转换为 esm 的 Rollup 工作流程。或同等学历。
那么问题来了:现在是否有 Rollup 转换器/插件可以让我们将所有或至少大多数旧格式捆绑到 esm 中? IE。将 commonJS、iife、umd、amd(和其他)库格式转换为 esm,或者至少可以捆绑到 esm 包中?
有一些插件专门用于执行此操作:
- https://github.com/rollup/rollup-plugin-commonjs https://github.com/rollup/rollup-plugin-commonjs
- https://github.com/rollup/rollup-plugin-legacy https://github.com/rollup/rollup-plugin-legacy
- https://github.com/piuccio/rollup-plugin-amd https://github.com/piuccio/rollup-plugin-amd
CommonJS 插件也应该涵盖 UMD。它们并非没有警告——在某些情况下,AMD 很难转换为 ESM,并且您可以使用 CommonJS 做一些相当令人讨厌的事情,这些事情很难重新创建(像 webpack 这样的捆绑器通过有效地模拟 Node 环境来绕过它),但他们处理常见情况。
对于其余的,如果维护者不接受在默认版本旁边添加 ESM 版本的 PR(有些人不会,令人沮丧),您可能必须分叉 - 取决于您所依赖的:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)