ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Vite 8 中 optimizeDeps.esbuildOptions 如何迁移到 rolldownOptions?

Vite 8 中 optimizeDeps.esbuildOptions 如何迁移到 rolldownOptions? Vite 8 中 optimizeDeps.esbuildOptions 如何迁移到 rolldownOptions【免费下载链接】viteNext generation frontend tooling. Its fast!项目地址: https://gitcode.com/GitHub_Trending/vi/vite从 Vite 8 开始依赖预打包dependency pre-bundling从 esbuild 切换为 RolldownoptimizeDeps.esbuildOptions被标记为DeprecatedVite 会在内部把它自动转换成optimizeDeps.rolldownOptions并且官方说明该选项未来会被移除。如果你的项目升级到了 Vite 8 且配置里还在写esbuildOptions这篇文章给出迁移对照表、改写方式以及用官方文档中提供的configResolved钩子核对转换结果的验证步骤。注意依赖优化器只在开发模式dev下生效所以验证要在 dev server 里做vite build看不到这些选项的作用。迁移前先确认 esbuildOptions 的现状Vite 8 用 Rolldown 和 Oxc 系工具取代了 esbuild 和 Rollup。针对依赖优化器迁移指南 明确Vite 仍然支持optimizeDeps.esbuildOptions以保持向后兼容实现方式是自动转换为optimizeDeps.rolldownOptionsoptimizeDeps.esbuildOptions已被弃用未来会移除官方建议迁移到optimizeDeps.rolldownOptions。在 依赖优化配置选项文档 中optimizeDeps.esbuildOptions条目同样标注了Deprecated说明This option is converted tooptimizeDeps.rolldownOptionsinternally。迁移后的optimizeDeps.rolldownOptions传入 Rolldown 的选项其中有几个约束需要注意input、logLevel等与 Vite 依赖优化不兼容的选项被排除在类型之外output也移除了format、sourcemap、dir、banner这几个字段plugins会与 Vite 自带的 dep 插件合并。选项对照表逐项改写 esbuildOptions迁移指南 给出了兼容性层自动转换的完整对照关系这是本次迁移的核心依据原选项esbuildOptions.*迁移到rolldownOptions.*minifyoutput.minifytreeShakingtreeshakedefinetransform.defineloadermoduleTypespreserveSymlinksresolve.symlinks注意取反文档写作!rolldownOptions.resolve.symlinksresolveExtensionsresolve.extensionsmainFieldsresolve.mainFieldsconditionsresolve.conditionNameskeepNamesoutput.keepNamesplatformplatformpluginsplugins部分支持两点特别提醒preserveSymlinks是唯一一个语义取反的映射esbuild 侧为true时对应的 Rolldown 配置是resolve.symlinks: false。逐项搬运时不要照抄值。plugins是部分支持partial support如果你原来通过esbuildOptions.plugins注入过 esbuild 插件迁移时需要确认对应能力在 Rolldown 插件下是否存在等价实现不能假设一一对应。改写后的配置结构大致如下代码块中选项值请替换为你项目中esbuildOptions里实际存在的项这里只展示位置变化// vite.config.js —— 迁移前 import { defineConfig } from vite export default defineConfig({ optimizeDeps: { esbuildOptions: { // 原有的 esbuild 选项 }, }, })// vite.config.js —— 迁移后 import { defineConfig } from vite export default defineConfig({ optimizeDeps: { rolldownOptions: { // 按上表逐项迁移的选项例如 define 移到 transform.define }, }, })验证迁移结果用 configResolved 钩子查看转换后的选项官方文档给出的验证手段是通过插件的configResolved钩子打印兼容层实际设置的选项迁移指南 原文示例const plugin { name: log-config, configResolved(config) { console.log(options, config.optimizeDeps.rolldownOptions) }, },用法建议分两步迁移前先把这个插件临时加进vite.config.js的plugins数组启动 dev server。此时控制台打印的是兼容层从你的esbuildOptions转换出来的rolldownOptions——这份输出就是你要手工写入配置的“目标值”清单。迁移后把esbuildOptions删掉、换成自己写好的rolldownOptions再启动一次 dev server 对比打印结果确认转换层不再介入、你手写的选项生效。启动 dev server 时文档中即vite命令如果改了优化相关配置后想忽略已有缓存重新预打包可以用--force命令行选项vite --force依赖预打包缓存在node_modules/.vite目录缓存是否重跑取决于锁文件内容、patches 目录修改时间、vite.config.js中相关字段和NODE_ENV等条件详见 依赖预打包指南。文档给出的另一种强制方式是你手动删除node_modules/.vite缓存目录——副作用是下一次启动会完整重新预打包只在你明确要丢弃预打包缓存时这样做。限制与后续影响esbuildOptions是弃用状态官方明确它will be removed in the future迁移是迟早要做的事本次迁移后 dev server 下依赖预打包就完全走 Rolldown。若你的项目此前是从rolldown-viteRolldown 集成的 Vite 7 技术预览版升级过来的package.json里vite的别名依赖要换回vite: ^8.0.0迁移指南中的示例值该文档中标注 NRV 的章节才适用于这类用户。依赖优化器只在 dev 下工作上述验证全部在vite/vite --force启动的开发服务器中完成即可不需要跑构建来验证这些选项。【免费下载链接】viteNext generation frontend tooling. Its fast!项目地址: https://gitcode.com/GitHub_Trending/vi/vite创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表