Rest 1/2 of Disable dynamic import wrapper __vite__injectQuery
Description
Reopen https://github.com/vitejs/vite/issues/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:
-
/* @vite-ignore */
Alternative
undo https://github.com/vitejs/vite/pull/16556 (ha ha)
Additional context
Repo: https://github.com/b5414/sample // attention to src\rendered\assets\background_modules.js:21
To see the issue, just open the console (ctrl + shift + i or f12) of opened google dot com window by extension with S icon
- if you running
build- you will see:test info: <Module> - if you running
start- you will see:test err: bla bla bla __vite__injectQuery undefined
Validations
- [X] Follow our Code of Conduct
- [X] Read the Contributing Guidelines.
- [X] Read the docs.
- [X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
Unfortunately we cannot simply skip injecting __vite__injectQuery as it'll break some apps (https://github.com/vitejs/vite/pull/14851#issuecomment-1791941779). I guess https://github.com/vitejs/vite/pull/9981 could solve this in an ideal way.
@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, 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:
-
func_super_for_inject function which going to be
JSON.stringifythenJSON.parseby CHROME during the execFunc -
whole 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:
- const basic_file_dir = '/rendered/assets/basic.js';
- const basic_file_dir = 'http://localhost:3000/rendered/assets/basic.js?import'; // direct dev path
- const basic_file_dir = chrome.runtime.getURL('/rendered/assets/basic.js' + '?import');
- const basic_file_dir = chrome.runtime.getURL('/rendered/assets/basic.js') + '?import';
and I have seen the trying path at console log
and I believe configureServer(server) + server.middlewares.use works only on NOT dynamic import (it means: it's not my case)