nodejs / node

Node.js JavaScript runtime ✨🐢🚀✨
https://nodejs.org
Other
107.34k stars 29.48k forks source link

Node SEA ESM support #53565

Open guoh27 opened 4 months ago

guoh27 commented 4 months ago

What is the problem this feature will solve?

Nodejs version 20.15.0, I have a .mjs file, use node --experimental-sea-config sea-config.json pack as a blob, and then npx postject hello NODE_SEA_BLOB sea-prep.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 successful, but ./hello will throw Require a ESM error. So, packing ESM module into SEA single executable is not available now.

What is the feature you are proposing to solve the problem?

Packing ESM module as a single exeutable.

What alternatives have you considered?

Another feature request is: bake v8 options into executable to run with them on, like pkg's --options argument

guoh27 commented 4 months ago

Now I have to use a .cjs wrapper, and dynamic import my .mjs app entry, which is ugly.

guoh27 commented 4 months ago

according to lib/internal/util/embedding.js#L19

guoh27 commented 3 months ago

Don’t forget the --options parameter like pkg:

image