Summary
An island package whose module graph contains top-level await fails to load: the island's call path require()s the ESM entry, and Node throws ERR_REQUIRE_ASYNC_MODULE inside the embedded libnode — the error propagates out of callSync.
This is where ink stops on main (all its former SC9001 build ICEs are fixed — it now compiles fully, with react/es-toolkit/react-reconciler correctly routed to islands).
Reproduction
import { render, Text } from "ink";
render(React.createElement(Text, null, "hello"));Builds ✅, then at runtime:
Error [ERR_REQUIRE_ASYNC_MODULE]: require() cannot be used on an ESM graph with top-level await
Required module: ~/.cache/scriptc/node-islands/<hash>/node_modules/ink/build/index.js
at ModuleLoader.importSyncForRequirepackages/runtime/src/scr_node_island_host.cjs load(path, esm) does have an import() branch for esm modules — but the call path that reaches ink's entry apparently goes through createRequire/Module._load instead. A fix likely needs esm entries routed through import() (and therefore an async island call) when the module graph has TLA.
Verified on main (d4c82a5c3), darwin-arm64, libnode pack per packages/libnode-common/build-pack.mjs.
Activity
0No activity yet.