Neviem ako to GNOME a GJS robí, ale v node funguje import CJS v ESM.
Stačí použiť buď:
import { createRequire } from 'node:module';
export const require = createRequire(import.meta.url);
const myModule = require('./myModule');
alebo:
const myModule = (await import('./myModule')).default;
vo väčšine prípadov.
A nemyslím si že je problém aby fungovalo ESM a CJS oboje zároveň i v GJS i v GNOME, tak že by i existujúce extensions by fungovalo bez potreby akejkoľvek zmeny čo sa týka import/export statementov.
4. 9. 2023, 18:47 editováno autorem komentáře