Open thecopy opened 1 week ago
Hello,
My loader file is executed twice and it seems it is caused by a CJS dependency which calls createRequire. Importing createRequire in my ESM script does not execute loader script twice.
createRequire
Is this expected?
Repro: loader.mjs
loader.mjs
console.log('loaded')
index.mjs
import { pino } from 'pino'; const logger = pino({ transport: { target: 'pino-pretty' }}); logger.info("hello")
Execute:
$ npm i pino pino-pretty $ node --import=./loader.mjs index.mjs loaded loaded [10:59:13.501] INFO (23004): hello
If i remove { transport: { target: 'pino-pretty' }}:
{ transport: { target: 'pino-pretty' }}
node --import=./loader.mjs index.mjs loaded {"level":30,"time":1728896437188,"pid":23035,"hostname":"Eriks-MacBook-Pro.local","msg":"hello"}
Node v20.18.0 Pino createRequire call: https://github.com/pinojs/pino/blob/main/lib/transport.js#L150
You are starting a worker thread by way of the Pino transport. Each thread will execute the loader.
Hello,
My loader file is executed twice and it seems it is caused by a CJS dependency which calls
createRequire
. ImportingcreateRequire
in my ESM script does not execute loader script twice.Is this expected?
Repro:
loader.mjs
index.mjs
Execute:
If i remove
{ transport: { target: 'pino-pretty' }}
:Node v20.18.0 Pino
createRequire
call: https://github.com/pinojs/pino/blob/main/lib/transport.js#L150