Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vite对嵌套条件的处理与其他捆绑器相比如何


Vite对嵌套条件的处理与其他捆绑器相比如何


Vite在条件出口中对嵌套条件的处理类似于其他现代捆绑器,例如汇总和WebPack,但有一些关键差异:

##筑巢和特异性顺序

- vite:条件可以嵌套在``package.json''的“导出”字段中。应从最具体到最不具体的特定指定。 Vite将匹配其允许条件列表中的第一个条件[1]。

- 汇总:汇总支持“导出”字段中的嵌套条件,按照与Vite [2]相同的特异性顺序。

-WebPack:WebPack还支持“导出”字段中的嵌套条件,需要与Vite和lollup相同的特异性顺序[3]。

##允许条件

-VITE:有一个预定义的允许条件列表,其中包括`import',```'',`brows','browser','默认值和特定于环境的条件(例如``生产)或开发'。 `resolve.condition'配置选项可以添加更多[1]。

- 汇总:允许通过“ PresererVemotules”和“ PreserveMotulesRoot”选项指定自定义条件[2]。

-WebPack:允许通过`rasolve.conditionNames`选项[3]定义自定义条件。

##处理不正确的条件

- VITE:如果条件未正确结构或VITE选择不正确的导出,则可能导致运行时错误。仔细的“出口”字段结构至关重要[1]。

- 汇总:如果汇总会遇到“导出”字段的问题,则将记录警告,但仍可以解决入口点[2]。

-WebPack:如果“导出”字段畸形或无法解析输入点[3],则WebPack将记录错误。

MonorePo支持

- VITE:自动检测MonorePo中的链接依赖关系,并将其视为源代码,分析其依赖关系而不是捆绑它们[4]。

- 汇总:需要使用``@lollup/plugin-alias')等插件处理monorepo中的链接依赖项[2]。

-webpack:需要使用``增强储存'''等插件来处理monorepo中的链接依赖项[3]。

总而言之,Vite对嵌套条件的处理类似于其他捆绑机,但是它具有一些优点,例如自动MonorePo支持和更健壮的允许条件列表。但是,所有捆队都需要仔细构造“出口”字段,以避免问题。

引用:
[1] https://v2.vitejs.dev/config/
[2] https://vitejs.dev/guide/features
[3] https://vitejs.dev/guide/dep-pre-bundling
[4] https://vitejs.dev/guide/build
[5] https://vitejs.dev/config/shared-options