Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Como o manuseio das condições aninhadas de Vite se compara a outros pacotes


Como o manuseio das condições aninhadas de Vite se compara a outros pacotes


O manuseio de Vite de condições aninhadas nas exportações condicionais é semelhante a outros pacotes modernos, como Rollup e Webpack, mas com algumas diferenças importantes:

Ordem de nidificação e especificidade

- Vite: as condições podem ser aninhadas no campo `exportações` de` package.json`. Eles devem ser especificados do mais específico e menos específico. O Vite corresponderá à primeira condição que está na lista de condições permitidas [1].

- Rollup: o Rollup suporta condições aninhadas no campo `Exports`, seguindo a mesma ordem de especificidade que o Vite [2].

- Webpack: o Webpack também suporta condições aninhadas no campo `Exporta ', exigindo a mesma ordem de especificidade que o Vite and Rollup [3].

Condições permitidas

- Vite: possui uma lista predefinida de condições permitidas que inclui `importação`,` módulo`, `navegador`,` default` e condições específicas do ambiente como 'Produção` ou `Development`. A opção de configuração `resolve.conditions` pode adicionar mais [1].

- Rollup: permite especificar condições personalizadas por meio das opções `PreserveModules` e` PreserveModuSroot` [2].

- Webpack: permite definir condições personalizadas por meio da opção `Resolve.ConditionNames` [3].

lidando com condições incorretas

- Vite: se as condições não estiverem estruturadas corretamente ou o Vite selecionar uma exportação incorreta, isso pode levar a erros de tempo de execução. A estruturação cuidadosa do campo `exporta 'é crucial [1].

- Rollup: Rollup avisará os avisos se encontrar problemas com o campo `exportações`, mas ainda poderá resolver um ponto de entrada [2].

- Webpack: o WebPack registrará erros se o campo `exportações` for malformado ou se não puder resolver um ponto de entrada [3].

Monorepo Suporte

- Vite: detecta automaticamente as dependências vinculadas em um monorepo e as trata como código -fonte, analisando suas dependências em vez de agregá -las [4].

- Rollup: requer o uso de plugins como `@rollup/plugin-alias` para lidar com dependências vinculadas em um monorepo [2].

- Webpack: requer o uso de plugins como `aprimorada-resolução` para lidar com dependências vinculadas em um monorepo [3].

Em resumo, o manuseio de condições aninhadas da Vite é semelhante a outros pacotes, mas possui algumas vantagens, como suporte automático de Monorepo e uma lista de condições permitidas mais robustas. No entanto, todos os pacotes exigem estruturação cuidadosa do campo 'Exportações` para evitar problemas.

Citações:
[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