Menci / vite-plugin-top-level-await

Transform code to support top-level await in normal browsers for Vite.
MIT License
266 stars 15 forks source link

this.document and this.location.href do not exist in a web worker #55

Closed ryanxcharles closed 2 months ago

ryanxcharles commented 2 months ago

if you use this plugin in a web worker, it will work in development, but not in production.

it fails in production first because this.location does not exist in a web worker. this can be fixed by changing it to self.location.

however, more fundamentally, document does not exist inside a web worker. you cannot do this.document = [anything] in a web worker.

but, this line is actually a polyfill. self does exist in a web worker, and we can polyfill self.document exactly like in a normal web page.

in a nutshell, if you change both instances of "this" to "self", this plugin works in a web worker in production.