phartenfeller / sveltekit-1.0-sqlite-demo-app

My demo app of various SvelteKit experiments from my YouTube series.
https://sveltekit-demo.hartenfeller.dev
106 stars 19 forks source link

PDF generation not working on production #3

Open lapoguidi opened 1 year ago

lapoguidi commented 1 year ago

Testing in production with adapter-node gettings

ReferenceError: __dirname is not defined in ES module scope
This file is being treated as an ES module because it has a '.js' file extension and 'package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
    at requireFontkit (file:///home/ubuntu/build/server/chunks/_server-17432636.js:39657:45)
    at file:///home/ubuntu/build/server/chunks/_server-17432636.js:64668:22
    at ModuleJob.run (node:internal/modules/esm/module_job:194:25)

The error occurs here: var trie = new UnicodeTrie(fs.readFileSync(__dirname + '/data.trie')); If this occurred also for you, how have you solved this?

Thanks

Lapo

phartenfeller commented 1 year ago

Ok, weird; it works for me. How are you running the production build, and what is your node version?

From the error message, it seems like there is some ESM <-> CommonJS mismatch. I used __dirname nowhere, so it has to be in some dependency.

lapoguidi commented 1 year ago

Hello, thanks for reply. I tried with 18 LTS: v18.6.0 then I upgraded to v18.6.2.

The error occurs when pdfmake is imported.

Anyway __dirname is used in a pdfKit dependency: https://github.com/foliojs-fork/fontkit

var trie = new UnicodeTrie(fs.readFileSync(__dirname + '/data.trie'));

I'm looking for a workaround : )