Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Vite의 중첩 조건 취급은 다른 번들과 비교되는 방법


Vite의 중첩 조건 취급은 다른 번들과 비교되는 방법


조건부 수출에서 Vite의 중첩 조건을 처리하는 것은 롤업 및 웹 팩과 같은 다른 현대 번들과 유사하지만 몇 가지 주요 차이점이 있습니다.

중첩 및 특이성 순서

-Vite : 조건은`package.json`의 'Exports'필드에 중첩 될 수 있습니다. 가장 구체적으로 가장 구체적으로 지정해야합니다. Vite는 허용 조건 목록 [1]에있는 첫 번째 조건과 일치합니다.

- 롤업 : 롤업은 vite와 동일한 특이성 순서에 따라 'Exports'필드의 중첩 조건을 지원합니다 [2].

-Webpack : Webpack은 또한 'Exports'필드의 중첩 조건을 지원하므로 Vite 및 Rollup과 동일한 특이성 순서가 필요합니다 [3].

허용 조건

-Vite :`import`, 'module',`Browser ','Default '및`Production'또는 'Development'와 같은 환경 별 조건이 포함 된 허용 조건의 사전 정의 된 목록이 있습니다. `resolve.conditions 'config 옵션은 [1]를 더 추가 할 수 있습니다.

- 롤업 :`reservemodules` 및`reservemodulesroot '옵션을 통해 사용자 정의 조건을 지정할 수 있습니다 [2].

-Webpack :`resolve.conditionNames` 옵션을 통해 사용자 정의 조건을 정의 할 수 있습니다 [3].

잘못된 조건 처리

-Vite : 조건이 올바르게 구성되지 않거나 Vite가 잘못된 내보내기를 선택하면 런타임 오류로 이어질 수 있습니다. '수출'필드의 신중한 구조는 중요합니다 [1].

- 롤업 : 롤업은 'Exports'필드에 문제가 발생하면 경고를 기록하지만 여전히 진입 점을 해결할 수 있습니다 [2].

-Webpack : 'Exports'필드가 기형이 있거나 진입 점을 해결할 수없는 경우 WebPack은 오류를 기록합니다 [3].

monorepo 지원

-Vite : Monorepo의 연결된 종속성을 자동으로 감지하고 소스 코드로 취급하여 종속성을 번들링하는 대신 분석합니다 [4].

- 롤업 :`@rollup/plugin-alias`와 같은 플러그인을 사용하여 Monorepo [2]에서 연결된 종속성을 처리해야합니다.

-Webpack : 'Enhanced Resolve'와 같은 플러그인을 사용하여 Monorepo [3]에서 연결된 종속성을 처리해야합니다.

요약하면, Vite의 중첩 조건 처리는 다른 Bundlers와 유사하지만 자동 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