Re-export PostCSS config type from `postcss-load-config`
Description
As a developer using Vite I want to be able to write type-safe PostCSS configs using the same version of postcss-load-config Vite uses so that I do not accidentally write configs that Vite cannot load correctly.
Suggested solution
In Vite, we could re-export the type postcssrc.Config from postcss-load-config so that developers can use that type to write type-safe PostCSS configs.
Alternative
- Not vendor
postcss-load-configcode (as suggested in https://github.com/vitejs/vite/issues/15869#issuecomment-1939414914) - Writing PostCSS config inside Vite config
- This only accepts the array format, and many examples use the object format; converting from the object format to the array format is not the most straightforward, especially if plugin options are involved
- On a more subjective note, I prefer having each tool's config in a separate file, as it helps me mentally separate the context I need to consider
- Adding a devDependency on
postcss-load-configper project to get access to the type in each project using PostCSS- This requires that all projects using Vite keep track of the version of
postcss-load-configused by Vite to not use a wrong version and accidentally write a wrong config
- This requires that all projects using Vite keep track of the version of
- Not writing type-safe configs
Additional context
Now that Vite 6 has updated postcss-load-config to v6, developers can now load TypeScript PostCSS config files easily, but ensuring that these configs are type-safe require us to add an additional dependency on postcss-load-config, which is less than ideal due to the possibility of a project's postcss-load-config differing from Vite's, which can lead to hard to debug errors.
Validations
- [X] Follow our Code of Conduct
- [X] Read the Contributing Guidelines.
- [X] Read the docs.
- [X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
Sounds like a good idea to me 👍
i want to work on this issue