Does not work in a Node worker

#476 · closed · 5 comments

View on GitHub ↗

clemp6r

When trying to call electron-log from a Node worker, I get this error: ``` TypeError: Cannot read properties of undefined (reading 'exports') at cjsPreparseModuleExports (node:internal/modules/esm/translators:295:81) at createCJSModuleWrap (node:internal/modules/esm/translators:187:35) at ModuleLoader.<anonymous> (node:internal/modules/esm/translators:247:10) at #translate (node:internal/modules/esm/loader:534:12) at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:581:27) ``` Versions: - electron-log: 5.4.3 - electron: 36.5.0 - electron-vite: 3.1.0 Additional context: - running in dev mode - worker created using `?nodeWorker` import from [electron-vite](https://electron-vite.org/guide/dev#worker-threads). Thanks

Comments

megahertz

Unfortunately, I'm unable to help with electron-vite-related matters. It seems like a bundling issue.

clemp6r

Alright (see: https://github.com/alex8088/electron-vite/issues/835)

hiSandog

Node worker support probably needs explicit documentation around process type and transport. A worker does not always have the same Electron globals or app lifecycle as the main process, so default log path resolution and IPC transport can fail silently. A small example showing the supported worker setup, or a clear error when a worker-only context lacks the needed transport, would help users debug this.

megahertz

@hiSandog agree. I added that to my to-do list, but no estimate currently

megahertz

The cause is that importing 'electron' fails inside ESM worker threads in Electron. It's unrelated to electron-log itself. Fixes: upgrade to v5.4.4 and keep electron-log externalized (the electron-vite default), or use electron-log/node in the worker.