Skip to content
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

Rest 1/2 of Disable dynamic import wrapper __vite__injectQuery #16678

Open
4 tasks done
b5414 opened this issue May 14, 2024 · 3 comments
Open
4 tasks done

Rest 1/2 of Disable dynamic import wrapper __vite__injectQuery #16678

b5414 opened this issue May 14, 2024 · 3 comments

Comments

@b5414
Copy link

b5414 commented May 14, 2024

Description

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:

  • /* @vite-ignore */

Alternative

undo #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

@sapphi-red
Copy link
Member

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.

@b5414
Copy link
Author

b5414 commented 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, 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)

@b5414
Copy link
Author

b5414 commented Jun 3, 2024

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.stringify then JSON.parse by 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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants