typescript - Creare un modulo npm ibrido per ESM e CommonJS
Diciamo che sto scrivendo una libreria npm chiamata my-awesome-lib usando Typescript. Poiché my-awesome-lib dipende da una libreria pure-ESM, devo usare la sintassi ESM, cioè import per utilizzare quella libreria di terze parti. Ora tutto funziona, incluso jest, e ho seguito questo tutorial per esportare my-awesome-lib sia come modulo ESM che CommonJS.
Nel frattempo, sto anche scrivendo un'applicazione che dipende dalla mia libreria personalizzata usando la sintassi CommonJS, cioè require('my-awesome-lib'), ma il suite di test di jest non è riuscita a eseguire perché:
Devi usare import per caricare il modulo ES: path/to/application/node_modules/3rd_party/index.js
Ha senso per me perché la libreria di terze parti è puramente ESM e non puoi require un pacchetto ESM - ma mi confonde anche: non avevo già detto a Typescript di compilare il codice sorgente in CommonJS (oltre che in ESM)?
Ho anche seguito l'incredibile post di Dan Fabulich su ESM vs CommonJS, ma non ho ancora una risposta.
Qualcuno può aiutarmi qui? Mille grazie.