Saltar al contenido

Solución de problemas

Errores habituales de Elide con sus mensajes exactos y su solución: módulos que faltan, Python, herramientas de la JVM, denegaciones del sandbox, tiempos de espera, memoria y puertos.

En esta página

Cada sección cita un error tal como lo imprime Elide y después da la solución.

No existe el módulo integrado

Error: No such built-in module: node:http2

node:http2, node:cluster, node:inspector y node:wasi no están disponibles; require devuelve el código ERR_UNKNOWN_BUILTIN_MODULE. Sin el prefijo node: el mensaje es Cannot find module 'http2'. Un paquete que importa uno de ellos al cargarse, como Fastify, falla del mismo modo. Consulte el estado de cada módulo en la Descripción general de la API.

Módulo no encontrado después de elide install

TypeError: Module not found: 'hono'

elide install sin opciones solo instala las dependencias de Maven. Si solo hay un package.json, no imprime nada y termina con 0. Instale los paquetes de npm con:

elide install --ecosystems=npm

Python no está instalado

Python support is not installed. Run 'elide setup python' to add it.

Código de salida 2. Ejecute elide setup python; elide info muestra los lenguajes instalados en su línea Languages:. Un archivo de JavaScript que importa un módulo .py antes de instalar Python termina con 1 y Cannot import 'mod.py': Python support is not installed., con la misma indicación. Con Python instalado, las llamadas entre lenguajes también necesitan --interop; consulte Lenguajes e interoperabilidad.

elide javac sin --

error: '[-- TOOL_ARGS]…' can only be given after '--'

Usage: elide javac [FLAGS] [-- TOOL_ARGS]…

Los argumentos de javac, java, kotlinc y las demás herramientas del JDK van después de --:

elide javac -- -d out Hello.java
elide java -- -cp out Hello

Las clases de Kotlin fallan con elide java

elide kotlinc -- -d kout Main.kt
elide java -- -cp kout MainKt
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/collections/CollectionsKt
	at MainKt.main(Main.kt:2)
	at MainKt.main(Main.kt)
Caused by: java.lang.ClassNotFoundException: kotlin.collections.CollectionsKt

elide java no añade la biblioteca estándar de Kotlin. Ejecute el archivo con elide run Main.kt o empaquete la app como Jvm.JvmApplication. kotlinc -include-runtime falla.

Denegaciones del sandbox

MensajePermiso
EACCES: permission denied, open 'hello.txt'--allow-read=PATHS o --allow-write=PATHS
Error: Filesystem read denied by policy: /app/node_modules/honoAñada el almacén de npm a --allow-read; los paquetes se enlazan en ~/.cache/aube
fetch to 'example.com:443' is not permitted; grant it with --allow-net=example.comLa opción que indica el mensaje
spawn of 'echo' is not permitted; grant it with --allow-run=echoLa opción que indica el mensaje
fetch to 'example.com:443' denied by --deny-netQuite el host de --deny-net
spawn of 'echo' denied by --deny-runQuite el comando de --deny-run

Consulte Sandbox y límites.

--deny-net sin =

error: equal sign is needed when assigning values to '--deny-net=<HOSTS>'

Código de salida 2. Escriba --deny-net=example.com; lo mismo vale para --deny-run. Las opciones --allow-* aceptan un valor opcional, así que --allow-net example.com run app.js permite todos los hosts e intenta ejecutar un archivo llamado example.com:

No file or script named 'example.com'

Código de salida 124

Error: --timeout 2s exceeded

--timeout=DURATION detuvo la ejecución. Auméntelo o quítelo.

Código de salida 3 y falta de memoria

--heap-dump-on-oom=FILE escribe un volcado del heap cuando el heap se llena y después termina con 3:

Dumping heap to …/oom.hprof ...
Heap dump file created [308989015 bytes in 0.988 secs]

Sin esa opción, si el heap se llena, el programa termina con 1 y Could not allocate an unaligned heap chunk because the heap address space is exhausted. Aumente --max-mem. Un valor de 128m o menos falla antes de que arranque el programa:

Failed to create isolate: INSUFFICIENT_ADDRESS_SPACE (802)

Puerto ya en uso

node:http informa de un puerto ocupado:

Error: listen EADDRINUSE 127.0.0.1:3000

Los servidores con manejador fetch (export default { fetch }, Elide.serve) no informan de nada: un segundo servidor en el mismo puerto arranca y las peticiones se alternan entre los dos procesos. Detenga primero el antiguo:

ss -ltnp | grep :3000

Una petición devuelve 500 sin imprimir ningún error

HTTP/1.1 500 Internal Server Error

Un manejador fetch que lanza una excepción responde 500 Internal Server Error sin imprimir el error. Envuelva el manejador en try/catch y registre el error. Consulte Crear un servicio HTTP.

express.json() de Express detiene el servidor

TypeError: Buffer.isBuffer is not a function

express.json() y express.text() detienen el proceso con la primera petición que lleva cuerpo. Lea el cuerpo usted mismo o use express.raw(); consulte Frameworks.

¿Te resultó útil esta página?