-
-
Notifications
You must be signed in to change notification settings - Fork 2k
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
fix: bundle SvelteKit when using Vitest #9172
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually i take back my approval — I don't understand why we're only adding @sveltejs/kit
to noExternal
if process.env.TEST
is true, and I don't understand why esm-env
would ever be external either. Feels like we could simplify stuff
…s during development (#9203) * simplify * add comments etc * no need to noExternal kit itself * update comment * reinstate old comment
The changeset needs changing but I'm not sure what to. What does this fix? Should it just be a |
Well it currently doesn't fix anything because the actual fix got removed in #9203 😆 We need to add this section back:
I think we got our wires crossed on the discussion about that. I just tried explaining it another way and showed how you can verify that it helps here: #9162 (comment) |
Have you confirmed that the change fixes the repro in #9162? Because I'm trying it locally and it doesn't appear to make any difference; nor would I expect it to per #9203 (comment) |
Ah okay, it was making no difference because I was using a linked copy. Editing |
That being the case, we surely need |
Vite automatically bundles any linked dependency, so yeah you wouldn't be able to see a difference in adding it to
I don't really know what you mean by this.
No, I don't think so. Why do you say that?
Because Vitest does not use Vite to load libraries that are not in |
explained in #9203 (comment) —
Either we can load this files through Node (in which case external is fine) or we can't (in which case they need to be
Isn't the whole point of |
Nope. Vite calls Something else to note is that while
|
This sounds to me like a bug in Vitest. Why is it loading modules through a different mechanism than Vite itself? |
I'm not entirely sure. I believe it's for performance. The Vitest team sounded open to matching the behavior of Vite, but I don't think it will happen in the short-term. They're actively working to coordinate with Vite, trying to figure out where things should live, what high-level approaches to pursue, etc. That foundational stuff would probably need to be addressed first. E.g. see vitejs/vite#12165 In the meantime, it's probably worth adding a workaround for Vitest users given that we have so many of them and have been recommending Vitest in |
ok, i added back the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, this looks good to me now. thanks!
Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com>
We had added SvelteKit to
external
in #5861 to make the tests pass as it was needed for Vite 3. It appears to no longer be necessary with Vite 4This partially addresses #9162. There's still another issue I'll need to fix