Aller au contenu

Dépannage

Erreurs courantes d'Elide avec leurs messages exacts et leurs correctifs : modules manquants, Python, outils JVM, refus du bac à sable, délais, mémoire et ports.

Sur cette page

Chaque section cite une erreur telle qu’Elide l’affiche, puis donne le correctif.

Module intégré introuvable

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

node:http2, node:cluster, node:inspector et node:wasi ne sont pas disponibles ; require renvoie le code ERR_UNKNOWN_BUILTIN_MODULE. Sans le préfixe node:, le message est Cannot find module 'http2'. Un paquet qui en importe un au chargement, comme Fastify, échoue de la même façon. Vérifiez l’état d’un module dans la Vue d’ensemble de l’API.

Module introuvable après elide install

TypeError: Module not found: 'hono'

Un simple elide install n’installe que les dépendances Maven. Avec seulement un package.json, il n’affiche rien et se termine avec 0. Installez les paquets npm avec :

elide install --ecosystems=npm

Python n’est pas installé

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

Code de sortie 2. Exécutez elide setup python ; elide info liste les langages installés sur sa ligne Languages:. Un fichier JavaScript qui importe un module .py avant l’installation de Python se termine avec 1 et Cannot import 'mod.py': Python support is not installed., avec la même indication. Une fois Python installé, les appels entre langages nécessitent aussi --interop ; voir Langages et interopérabilité.

elide javac sans --

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

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

Les arguments de javac, java, kotlinc et des autres outils du JDK se placent après -- :

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

Les classes Kotlin échouent sous 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 n’ajoute pas la bibliothèque standard Kotlin. Exécutez le fichier avec elide run Main.kt, ou empaquetez l’application en Jvm.JvmApplication. kotlinc -include-runtime échoue.

Refus du bac à sable

MessageAutorisation
EACCES: permission denied, open 'hello.txt'--allow-read=PATHS ou --allow-write=PATHS
Error: Filesystem read denied by policy: /app/node_modules/honoAjoutez le magasin npm à --allow-read ; les paquets sont liés dans ~/.cache/aube
fetch to 'example.com:443' is not permitted; grant it with --allow-net=example.comL’option indiquée dans le message
spawn of 'echo' is not permitted; grant it with --allow-run=echoL’option indiquée dans le message
fetch to 'example.com:443' denied by --deny-netRetirez l’hôte de --deny-net
spawn of 'echo' denied by --deny-runRetirez la commande de --deny-run

Voir Bac à sable et limites.

--deny-net sans =

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

Code de sortie 2. Écrivez --deny-net=example.com ; il en va de même pour --deny-run. Les options --allow-* prennent une valeur facultative : --allow-net example.com run app.js autorise donc tous les hôtes et tente d’exécuter un fichier nommé example.com :

No file or script named 'example.com'

Code de sortie 124

Error: --timeout 2s exceeded

--timeout=DURATION a arrêté l’exécution. Augmentez la valeur ou retirez l’option.

Code de sortie 3 et mémoire épuisée

--heap-dump-on-oom=FILE écrit un vidage du tas lorsque le tas est plein, puis se termine avec 3 :

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

Sans cette option, si le tas est plein, le programme se termine avec 1 et Could not allocate an unaligned heap chunk because the heap address space is exhausted. Augmentez --max-mem. Une valeur de 128m ou moins échoue avant le démarrage du programme :

Failed to create isolate: INSUFFICIENT_ADDRESS_SPACE (802)

Port déjà utilisé

node:http signale un port occupé :

Error: listen EADDRINUSE 127.0.0.1:3000

Les serveurs à gestionnaire fetch (export default { fetch }, Elide.serve) ne signalent rien : un second serveur démarre sur le même port, et les requêtes alternent entre les deux processus. Arrêtez d’abord l’ancien :

ss -ltnp | grep :3000

Une requête renvoie 500 sans afficher d’erreur

HTTP/1.1 500 Internal Server Error

Un gestionnaire fetch qui lève une exception répond 500 Internal Server Error sans afficher l’erreur. Entourez le gestionnaire d’un try/catch et journalisez l’erreur. Voir Créer un service HTTP.

express.json() d’Express arrête le serveur

TypeError: Buffer.isBuffer is not a function

express.json() et express.text() arrêtent le processus à la première requête qui a un corps. Lisez le corps vous-même ou utilisez express.raw() ; voir Frameworks.

Cette page vous a-t-elle aidé ?