Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

272
Vistas
La mejor manera de evaluar el módulo de código fuente de JavaScript con node.js

Con el nodo, transpilo un archivo tsx mecanografiado int javascript. Luego necesito llamar a una función que se describe en ese código javascript. Se utilizan módulos ES6.

yo suelo

 writeFileSync('./temp/page1.js', js) // js is the module source code import page from '../temp/page1.js'

La página está aquí la exportación predeterminada, que es una función a la que quiero llamar.

Eso funciona bien, pero me pregunto si hay una mejor manera de llamar a la función dentro del código fuente del módulo. Una forma que evita guardar el código fuente en un archivo temporal.

eval no sería un problema de seguridad, pero creo que no me daría la exportación predeterminada, los módulos no se consideran en esta función anterior.

¿Quizás algo relacionado con el nodo?

Encontré https://www.npmjs.com/package/node-eval que evitaría guardar el archivo, aunque todavía requiere un nombre de archivo, lo que causa cierta fragilidad en mi código.

nodo:módulo nodo:vm

son quizás prometedores, mirando https://github.com/node-eval/node-eval/blob/master/index.js pero aún no he descubierto si y cómo.

Similar, pero más relacionado con require: Cargue el módulo node.js desde una cadena en la memoria

https://github.com/floatdrop/require-from-string tampoco funcionó

todas las variantes con node:vm like

 import vm from 'node:vm' let context = vm.createContext({}, {name:"temp1.mjs"}) vm.runInContext(js, context, {filename: "temp2.mjs"})

resultado en "No se puede usar la declaración de importación fuera de un módulo"

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La mejor manera sería la clase de nodos vm.Module

https://nodejs.org/api/vm.html#vm_module_evaluate_options

pero eso está en la etapa de borrador y detrás de las banderas de características.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda