voidzero-dev / voidzero-dev/vite-plus
Revert bundling Vitest directly inside Vite+
- Lenguaje dominante
- Rust
- Estrellas
- 5.8k
- Forks
- 262
- Merge medio
- 23 h 41 min
- PR fusionados (30 d)
- 138
Descripción
### Description
Currently, there is no way to add an import subpath as a package override (example below)
```jsonc
{
"devDependencies": {
"vitest": "npm:vite-plus@0.2.8/test" // doesn't work!
}
}
```
This means that, despite supposedly being compatible with Vitest, packages and integrations may break now due to the absence of a `vitest` package to import from.
### Suggested solution
The old setup of overriding `vitest` with `@voidzero-dev/vite-plus-test` worked fine for this purpose. I propose that we bring it back, at least temporarily, if the Vite+ core team is dead set on bundling it. This way, integrations that check for the `vitest` package still work with Vite+.
### Alternative
Alternatives include migrating the entire ecosystem to use the `vite-plus/test` export which seems unlikely to happen (and also would break compatibility with vanilla Vitest unless packages have to check for both exports, which is another optional peer dependency required to be declared).
### Additional context
This isn't as much of a problem for Vite, tsdown, Rolldown, and Oxlint because their requirements are type-level imports or (in the case of Vite) is already bypassed by overriding the `vite` package. On the other hand, some Vitest reporters rely on extending existing reporters or programmatically running Vitest, which isn't covered in the current export model.
### Validations
- [x] Read the [Contributing Guidelines](https://github.com/voidzero-dev/vite-plus/blob/main/CONTRIBUTING.md).
- [x] Confirm this request is for Vite+ itself and not for Vite, Vitest, tsdown, Rolldown, or Oxc.
- [x] Check that there isn't already an issue requesting the same feature.
Guía de contribución
Línea de trabajo
Comienza rastreando la exportación del paquete y la configuración de sobrescritura de dependencias de Vite+, y compárala después con el ejemplo de alias de npm y la configuración anterior de @voidzero-dev/vite-plus-test. Se considera terminado cuando las integraciones que importan o usan mediante programación el paquete vitest se resuelven bajo Vite+ sin requerir la migración a vite-plus/test.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript
- Área
- developer-experience, tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100