Closed ryanxcharles closed 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.
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.