-
-
Notifications
You must be signed in to change notification settings - Fork 7k
Open
Labels
Description
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-config
code (as suggested in ESM.postcssrc.ts
w."type": "module"
results inERR_REQUIRE_ESM
#15869 (comment)) - 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-config
per 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-config
used 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
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that request the same feature to avoid creating a duplicate.