迁移到 Rollup 4
这里列举了一些在迁移 Rollup 3 时可能遇到 的重要问题。有关所有破坏性更新的完整列表,我们建议你查阅:
从 Rollup 3 或更早版本迁移时,请参阅 下面的部分.
前提条件
确保你的 Node 版本至少为 18.0.0,并更新所有 Rollup 插件到最新版本。
对于更大的配置,首先更新到 rollup@3.29.4
,将 strictDeprecations
选项添加到你的配置中,并解决弹出的所有错误。这样,你可以确保你不依赖可能在 Rollup 4 中被删除的功能。如果你的插件有错误,请联系插件作者。
总体变更
Rollup 现在包含了自动安装(和删除)的原生代码,如果你的平台和架构受到支持,它将作为 可选的 npm 依赖 自动安装。更准确地说,Rollup 有一个 optionalDependencies
列表,每个列表只安装在特定的 os
和 cpu
上。如果你的系统不受支持,当你启动 Rollup 时,你将收到一个错误消息,该消息 将告诉你你的平台和架构,并给出一个支持的列表。在这种情况下,你可以使用 @rollup/wasm-node
作为独立的跨平台替代品。
面向浏览器的构建(NPM 上的 @rollup/browser
)现在依赖于一个需要提供的 WASM 文件。如果你正在使用 Vite 的浏览器构建,你需要将 "@rollup/browser"
添加到 optimizeDeps.exclude
中,否则 npm run dev
将因为 .wasm
文件的无效路径而失败(请参阅 vitejs #14609)。否则,它应该可以正常工作,无需任何特定的干预。
另外,一个明显的变化是,Rollup 现在在文件名中使用 URL 安全的 base64 哈希值,而不是旧的 base16 哈希值。这种方式提供了更高的哈希安全性,但由于技术原因,哈希长度现在最多限制为 21 个字符。
当打包 CLI 应用程序时,如果输出 format
为 es
或 cjs
,Rollup 现在将自动保留入口文件中的 shebang 注释。以前,你需要通过插件添加注释。
最后,你可能会看到一些新的关于无效注释位置的警告。如果 Rollup 发现一个 @__PURE__
或 @__NO_SIDE_EFFECTS__
注释,它无法解释,因为它位于无效的位置,现在将发出警告。这些警告是为了帮助调试。为了消除它们,--filter-logs
CLI 选项可以帮助你。