Rollup & Plugins 能否将大多数遗留库转换为 es6 模块?
Can Rollup & Plugins convert the majority of legacy libraries to es6 modules?
我们团队的项目内部完全是es6模块(ESM),但是有依赖还没有制作esm版本
我们已经创建了各种解决方案,但它们绝对不是现代的主流解决方案。我指的是将遗留格式转换为 esm 的 Rollup 工作流程。或同等学历。
所以问题来了:现在有 Rollup converters/plugins 可以让我们将所有或至少大部分旧格式捆绑到 esm 中吗? IE。将 commonJS、iife、umd、amd(和其他)库格式转换为 esm,或者至少可以捆绑到 esm 包中?
有专门为此设计的插件:
- https://github.com/rollup/rollup-plugin-commonjs
- https://github.com/rollup/rollup-plugin-legacy
- https://github.com/piuccio/rollup-plugin-amd
CommonJS 插件也应该涵盖 UMD。它们并非没有警告 - 在某些情况下 AMD 很难转换为 ESM,并且您可以使用难以重新创建的 CommonJS 做一些相当讨厌的事情(像 webpack 这样的捆绑器通过有效地模拟 Node 环境来绕过它),但他们处理常见的情况。
对于其余部分,如果维护者不接受在默认构建的同时添加 ESM 构建的 PR(有些不会,令人沮丧),您可能不得不分叉 — 取决于您所依赖的 :)
我们团队的项目内部完全是es6模块(ESM),但是有依赖还没有制作esm版本
我们已经创建了各种解决方案,但它们绝对不是现代的主流解决方案。我指的是将遗留格式转换为 esm 的 Rollup 工作流程。或同等学历。
所以问题来了:现在有 Rollup converters/plugins 可以让我们将所有或至少大部分旧格式捆绑到 esm 中吗? IE。将 commonJS、iife、umd、amd(和其他)库格式转换为 esm,或者至少可以捆绑到 esm 包中?
有专门为此设计的插件:
- https://github.com/rollup/rollup-plugin-commonjs
- https://github.com/rollup/rollup-plugin-legacy
- https://github.com/piuccio/rollup-plugin-amd
CommonJS 插件也应该涵盖 UMD。它们并非没有警告 - 在某些情况下 AMD 很难转换为 ESM,并且您可以使用难以重新创建的 CommonJS 做一些相当讨厌的事情(像 webpack 这样的捆绑器通过有效地模拟 Node 环境来绕过它),但他们处理常见的情况。
对于其余部分,如果维护者不接受在默认构建的同时添加 ESM 构建的 PR(有些不会,令人沮丧),您可能不得不分叉 — 取决于您所依赖的 :)