-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
vite: no enforce: "post"
#8627
vite: no enforce: "post"
#8627
Conversation
🦋 Changeset detectedLatest commit: eb7d570 The changes in this PR will be included in the next version bump. This PR includes changesets to release 16 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
819a425
to
428d6fb
Compare
"Post" plugins are meant primarily for build analysis. Previously we were relying on `enforce: "post"` to ensure that plugins that transpile other languages to JS/TS ran before the Remix plugin. However, it should be the responsability of _those_ plugins to declare themselves with `enforce: "pre"`. In the case of MDX, the canonical plugin is not a Vite plugin, but rather a Rollup plugin so it cannot set `enforce` as that is a Vite-only API. Ideally, someone would wrap the MDX Rollup plugin and declare it as `enforce: "pre"`. This can also be done in userland through a simple object spread. That said, its simpler to place the MDX plugin before the Remix plugin in the Vite plugins array. Order is semantically meaningful for Vite plugins anyway.
428d6fb
to
eb7d570
Compare
🤖 Hello there, We just published version Thanks! |
🤖 Hello there, We just published version Thanks! |
tl;dr: we were abusing
enforce: "post"
so thatmdx
plugin could be place afterremix
plugin. Instead, we should either expect plugins likemdx
to self-declare aspre
or rely on Vite plugin ordering."Post" plugins are meant primarily for build analysis. Previously we were relying on
enforce: "post"
to ensure that plugins that transpile other languages to JS/TS ran before the Remix plugin. However, it should be the responsability of those plugins to declare themselves withenforce: "pre"
. In the case of MDX, the canonical plugin is not a Vite plugin, but rather a Rollup plugin so it cannot setenforce
as that is a Vite-only API.Ideally, someone would wrap the MDX Rollup plugin and declare it as
enforce: "pre"
. This can also be done in userland through a simple object spread.That said, its simpler to place the MDX plugin before the Remix plugin in the Vite plugins array. Order is semantically meaningful for Vite plugins anyway.
The official Vite React SWC plugin also relies on plugin ordering for MDX.