You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
There has been no activity on this feature request for 5 months. To help maintain relevant open issues, please add the
never-staleIssues and PRs exempt from automated stale handling.
label or close this issue if it should be closed. If not, the issue will be automatically closed 6 months after the last non-automated comment.
For more information on how the project manages feature requests, please consult the feature request management document.
Although, #61813 only supports loading a bundled ESM. OP seems to intend to load other modules from within the SEA. In that case, you'd need VFS support #61478 - both CJS and ESM entrypoint only support loading the non-built-ins.
Reading through this thread, it feels like folks might be hoping for a bit of magic to get SEA features. But like almost everything in Node.js, it’s driven by volunteers fitting it into their spare time. If you really want to see SEA features move forward, the best bet is to jump in and contribute yourself, or if this is relied on by a for-profit entity, consider having them sponsor someone to develop it. Otherwise, we'll end up in that familiar loop: lots of feature requests over the years, but no one with the free time to actually write the code, it might get fixed because an existing contributor happen to have a few free nights/weekends, but there will be zero assurance about progress.
Activity
guoh27 commentedon Jun 24, 2024
Now I have to use a .cjs wrapper, and dynamic import my .mjs app entry, which is ugly.
guoh27 commentedon Jun 24, 2024
according to lib/internal/util/embedding.js#L19
guoh27 commentedon Jun 25, 2024
Don’t forget the
--optionsparameter like pkg:github-actions commentedon Dec 23, 2024
There has been no activity on this feature request for 5 months. To help maintain relevant open issues, please add the never-staleIssues and PRs exempt from automated stale handling.
label or close this issue if it should be closed. If not, the issue will be automatically closed 6 months after the last non-automated comment.
For more information on how the project manages feature requests, please consult the feature request management document.
guoh27 commentedon Dec 23, 2024
Still ongoing.
niceEli commentedon May 5, 2025
any updates?
ndunks commentedon Sep 17, 2025
I also struggling for using SEA with load external ESM module, since my app is quite large, I need to extract the files at startup and switch to it.
src: add initial support for ESM in embedder API
src: add initial support for ESM in embedder API
src: add initial support for ESM in embedder API
src: add initial support for ESM in embedder API
joyeecheung commentedon Feb 19, 2026
Fixed by #61813
joyeecheung commentedon Feb 19, 2026
Although, #61813 only supports loading a bundled ESM. OP seems to intend to load other modules from within the SEA. In that case, you'd need VFS support #61478 - both CJS and ESM entrypoint only support loading the non-built-ins.
Reading through this thread, it feels like folks might be hoping for a bit of magic to get SEA features. But like almost everything in Node.js, it’s driven by volunteers fitting it into their spare time. If you really want to see SEA features move forward, the best bet is to jump in and contribute yourself, or if this is relied on by a for-profit entity, consider having them sponsor someone to develop it. Otherwise, we'll end up in that familiar loop: lots of feature requests over the years, but no one with the free time to actually write the code, it might get fixed because an existing contributor happen to have a few free nights/weekends, but there will be zero assurance about progress.
src: add initial support for ESM in embedder API