-
Notifications
You must be signed in to change notification settings - Fork 54
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
Using vite-plugin-solid with vitest workspaces prevents solid-js from resolving correctly #102
Comments
I have reported the same issue: #104. But in my case the tests pass on GitHub Actions and for other developers who run Node.js 16. Your example runs v16.20.0 but still fails. |
I have been running into really odd behavior with See here: #112 (comment) |
Hi, I ran into this same problem again, and ended up asking about it on the Vitest project: vitest-dev/vitest#6537 It looks like there is a known bug in Vitest affecting this (vitest-dev/vitest#5301). This plugin may be able to work around this by changing configuration settings. I was able to add |
We've updated some thing in the plugin that might affect this issue. Is this still a problem with 2.11.6? |
Description
Vitest has a workspaces feature, where vitest can be made aware of different sub-projects, and run the tests for each of these workspaces (based on their individual configuration) together.
However, when using Vitest workspaces and
vite-plugin-solid
, thesolid-js
resolution system fails to work properly, and functions likecreateStore()
throw errors.Reproduction
https://stackblitz.com/edit/solidjs-templates-4usktg?file=README.md&view=editor
The problem can be reproduced by running
npm run test-all
in the console. This runs a test that just callscreateStore
.Running
npm run test-fe-only
runs vitest in thefrontend/
package, which bypasses Vitest's workspaces system, everything works again.Running
npm run test-all-no-plugin
runs vitest the same as intest-all
, but with thevite-plugin-solid
plugin disabled. Again, this works as expected.Error/Investigation
The error returned is:
This is because in dev-mode, the
createStore
tries to access theDEV
object exported bysolid-js
. ThisDEV
object is only available ifsolid-js
is running in dev mode (in production, a different file is used which setsDEV
to undefined).However, for some reason, when Vite/NodeJS/Vitest/? tries to resolve the import
solid-js
fromnode_modules/solid-js/store/dist/dev.js
, it instead imports the production version ofsolid-js
, which obviously doesn't have the correct exportedDEV
object, and so an error is thrown.I'm creating this issue here, because the error only occurs if
vite-plugin-solid
is installed, but I'm not entirely sure what this plugin is doing that makes things behave weirdly here. There isn't any JSX to process, so I would have through the plugin is essentially a no-op.Thanks for any help!
The text was updated successfully, but these errors were encountered: