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

TypeError: importScripts(...) is not a function when running iife-style classic worker during dev #17826

Closed
7 tasks done
hi-ogawa opened this issue Aug 5, 2024 · 0 comments · Fixed by #17827
Closed
7 tasks done

Comments

@hi-ogawa
Copy link
Collaborator

hi-ogawa commented Aug 5, 2024

Describe the bug

Vite injects importScripts at the top and it's breaking a code. Transform looks like this:

// src/worker.js
(() => {
	console.log("hello iife");
})();

// http://localhost:5173/src/worker.js?worker_file&type=classic
importScripts("/@vite/env")(()=>{
    console.log("hello iife");
}
)();

The transformed code causes an error since call expression is parsed differently:

TypeError: importScripts(...) is not a function
    at worker.js:1:1

Perhaps, adding semicolon (like importScripts("/@vite/env"); ...) to be parsed as expression statement would help?

Reproduction

https://github.com/hi-ogawa/reproductions/tree/main/vite-worker-inject-importScripts

Steps to reproduce

System Info

(stackblitz)

  System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.20.3 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    vite: ^5.3.4 => 5.3.5

Used Package Manager

pnpm

Logs

No response

Validations

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

Successfully merging a pull request may close this issue.

1 participant