You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Rest 1/2 of Disable dynamic import wrapper __vite__injectQuery #16678
Reopen #16241 issue, because only 1/2 is solved for me / for my user case..
The problem is gone but only when I'm running npm run build, and the build version is going good (Thanks @bluwy), but if I running the same code but usings npm run dev (renamed to start in my sample project, which attached below)
Suggested solution
In both cases, vite should skip adding the compiler wrapper (__vite__injectQuery) if this is indicated by a special comment:
Unfortunately we cannot simply skip injecting __vite__injectQuery as it'll break some apps (#14851 (comment)). I guess #9981 could solve this in an ideal way.
now VITE is bipolar: on build you got one result, and on running dev - different
You can jump into my sample repo and check why is it important, at least for my existing (and prod) case
Idk what is your #9981 case, but if it should work with my case - please, just show me, and reply with comment, like why is it should be "this crunch" and not the All-In-One-Box tool (as vite is, by mho)
The problem is that I don't manage the file connection/importanation and configureServer with server.middlewares.use doesn't work well, I have tried specifying "?import" in paths but all in vain;
The whole script runs in the "service-worker" (background.js) file where I can't use dynamic loading of files and then the TEXT (directory path for example) goes to the chrome tab where I can't DIRECTLY take the file from the extension's local path as required by the CHROME API
because I believe this text above is hard to understand, once again:
the import analyser will prepend import {injectQuery as __vite__injectQuery} from "/@vite/client"; into script and it will crash on non-esm runtime. Adding file to optimizeDeps.exclude doesn't helps either. It’s better to have a master switch that completely disables this injection.
Activity
sapphi-red commentedon May 17, 2024
Unfortunately we cannot simply skip injecting
__vite__injectQueryas it'll break some apps (#14851 (comment)). I guess #9981 could solve this in an ideal way.b5414 commentedon May 17, 2024
@sapphi-red why not?
now VITE is bipolar: on build you got one result, and on running dev - different
You can jump into my sample repo and check why is it important, at least for my existing (and prod) case
Idk what is your #9981 case, but if it should work with my case - please, just show me, andreply with comment, like why is it should be "this crunch" and not the All-In-One-Box tool (as vite is, by mho)b5414 commentedon Jun 3, 2024
The problem is that I don't manage the file connection/importanation and
configureServerwithserver.middlewares.usedoesn't work well, I have tried specifying "?import" in paths but all in vain;The whole script runs in the "service-worker" (background.js) file where I can't use dynamic loading of files and then the TEXT (directory path for example) goes to the chrome tab where I can't DIRECTLY take the file from the extension's local path as required by the CHROME API
because I believe this text above is hard to understand, once again:
func_super_for_inject function which going to be
JSON.stringifythenJSON.parseby CHROME during the execFuncwhole body of func_super_for_inject is ISOLATED, and I only can give the SIMPLE params by arguments, like basic_file_dir
I have tried:
and I have seen the trying path at console log
and I believe
configureServer(server) + server.middlewares.useworks only on NOT dynamic import (it means: it's not my case)FranklinWhale commentedon Aug 26, 2025
__vite__injectQueryis breakingimport()with import attributes.becomes
ins429 commentedon Aug 28, 2025
Any progress with this?
shacha086 commentedon Jan 5, 2026
If I do something like
the import analyser will prepend
import {injectQuery as __vite__injectQuery} from "/@vite/client";into script and it will crash on non-esm runtime. Adding file to optimizeDeps.exclude doesn't helps either. It’s better to have a master switch that completely disables this injection.nicolo-ribaudo commentedon Apr 20, 2026
I'm struggling with this same problem. I have a non-analyzable import that loads an external resource:
And Vite is producing this output, removing the import attributes:
I am happy to contribute a fix, but I need pointers in what the expected behavior would be.
nicolo-ribaudo commentedon Apr 20, 2026
This might be an
es-module-lexerbug: guybedford/es-module-lexer#196