En Node.js REPL puedo importar dinámicamente así:
Welcome to Node.js v16.13.2. Type ".help" for more information. > let m = await import('data:text/javascript,export const x = 5;') [Module: null prototype] { x: 5 } > mx 5 >En Node.js puro, esto también funciona:
//main.js export const m = await import('data:text/javascript,export const x = 5;'); // index.js import * as Main from './main.js'; console.log(Main.mx);y
$ node index.js 5 $Pero esto no funciona en broma:
//main.test.js import * as Main from './main.js'; test('it loads', () => { expect(Main.mx).toEqual(5); });Obtener error:
Error: No se puede encontrar el módulo 'data:text/javascript,export const x = 5;' de 'principal.js'
¿Que está pasando aqui?
Mi package.json (partes relevantes):
{ "type": "module", "scripts": { "test": "NODE_OPTIONS=--experimental-vm-modules jest" }, "devDependencies": { "jest": "27.3.1" } }