developit / developit/workerize-loader

Support for export specifiers?

Offen
#15 4 Kommentare 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
2.3k
Forks
85
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

It appears like `workerize-loader` only supports moving [export declarations](https://github.com/developit/workerize-loader/blob/master/src/index.js#L52) in the target module into a worker. I'm attempting to use it with [Bucklescript](https://bucklescript.github.io/), which compiles modules down to an export specifier list, i.e. `export { foo, bar, }` instead of export declarations.

I took a pass at implementing this and couldn't get around Webpack [declaring its own parser plugin and bailing on `export specifier`](https://github.com/webpack/webpack/blob/master/lib/dependencies/HarmonyExportDependencyParserPlugin.js#L39), I think for tree-shaking purposes. I don't have much experience with Webpack plugins though and it seems like there should be a way to get this to work. Are there any alternate approaches you can suggest, or maybe workarounds?

One other thought I had for my purposes would be to instead compile to commonjs and tweak [workerize](https://github.com/developit/workerize) so that it would accept the pre-compiled source instead of doing the current find-and-replace compilation step.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Start with export handling in src/index.js and reproduce the BuckleScript-generated export specifier list. Read the linked Webpack HarmonyExportDependencyParserPlugin behavior to understand why export specifiers are rejected, then compare the proposed CommonJS and workerize alternatives. Done means a supported approach or a documented workaround is established and tested.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
devtools, web-dev
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.