У кожному розділі наведено помилку в тому вигляді, у якому її виводить Elide, а потім спосіб виправлення.
Немає такого вбудованого модуля
Error: No such built-in module: node:http2node:http2, node:cluster, node:inspector і node:wasi недоступні; require повертає код
ERR_UNKNOWN_BUILTIN_MODULE. Без префікса node: повідомлення буде Cannot find module 'http2'. Пакет, який імпортує
один із них під час завантаження, наприклад Fastify, завершується такою самою помилкою. Стан модуля дивіться на
сторінці Огляд API.
Модуль не знайдено після elide install
TypeError: Module not found: 'hono'elide install без параметрів встановлює лише залежності Maven. Якщо є тільки package.json, команда нічого не
виводить і завершується з кодом 0. Встановіть пакети npm так:
elide install --ecosystems=npmPython не встановлено
Python support is not installed. Run 'elide setup python' to add it.Код виходу 2. Виконайте elide setup python; elide info перелічує встановлені мови в рядку Languages:. Файл
JavaScript, який імпортує модуль .py до встановлення Python, завершується з кодом 1 і повідомленням
Cannot import 'mod.py': Python support is not installed. з тією самою підказкою. Коли Python встановлено, викликам між
мовами також потрібен --interop; див. Мови та взаємодія.
elide javac без --
error: '[-- TOOL_ARGS]…' can only be given after '--'
Usage: elide javac [FLAGS] [-- TOOL_ARGS]…Аргументи для javac, java, kotlinc та інших інструментів JDK указуються після --:
elide javac -- -d out Hello.java
elide java -- -cp out HelloКласи Kotlin не працюють під elide java
elide kotlinc -- -d kout Main.kt
elide java -- -cp kout MainKtException 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.CollectionsKtelide java не додає стандартну бібліотеку Kotlin. Запустіть файл через elide run Main.kt або запакуйте застосунок
як Jvm.JvmApplication. kotlinc -include-runtime
завершується помилкою.
Відмови пісочниці
| Повідомлення | Дозвіл |
|---|---|
EACCES: permission denied, open 'hello. | --allow-read=PATHS або --allow-write=PATHS |
Error: Filesystem read denied by policy: / | Додайте сховище npm до --allow-read; пакети зв’язуються посиланнями в ~/.cache/aube |
fetch to 'example. | Прапорець із повідомлення |
spawn of 'echo' is not permitted; grant it with --allow-run= | Прапорець із повідомлення |
fetch to 'example. | Приберіть хост із --deny-net |
spawn of 'echo' denied by --deny-run | Приберіть команду з --deny-run |
Див. Пісочниця та обмеження.
--deny-net без =
error: equal sign is needed when assigning values to '--deny-net=<HOSTS>'Код виходу 2. Пишіть --deny-net=example.com; те саме стосується --deny-run. Прапорці --allow-* приймають
необов’язкове значення, тому --allow-net example.com run app.js дозволяє всі хости й намагається запустити файл з
іменем example.com:
No file or script named 'example.com'Код виходу 124
Error: --timeout 2s exceededЗапуск зупинив --timeout=DURATION. Збільште значення або приберіть прапорець.
Код виходу 3 і нестача пам’яті
--heap-dump-on-oom=FILE записує дамп купи, коли купа заповнена, а потім завершується з кодом 3:
Dumping heap to …/oom.hprof ...
Heap dump file created [308989015 bytes in 0.988 secs]Без цього прапорця заповнена купа завершує програму з кодом 1 і повідомленням
Could not allocate an unaligned heap chunk because the heap address space is exhausted. Збільште --max-mem.
Значення 128m або менше спричиняє помилку ще до запуску програми:
Failed to create isolate: INSUFFICIENT_ADDRESS_SPACE (802)Порт уже зайнятий
node:http повідомляє про зайнятий порт:
Error: listen EADDRINUSE 127.0.0.1:3000Сервери з fetch-обробником (export default { fetch }, Elide.serve) нічого не повідомляють: другий сервер на тому
самому порту запускається, і запити чергуються між двома процесами. Спершу зупиніть старий:
ss -ltnp | grep :3000Запит повертає 500, а помилка не виводиться
HTTP/1.1 500 Internal Server ErrorFetch-обробник, який кидає виняток, відповідає 500 Internal Server Error, не виводячи помилку. Огорніть обробник у
try/catch і запишіть помилку в журнал. Див. Створення HTTP-сервісу.
express.json() в Express зупиняє сервер
TypeError: Buffer.isBuffer is not a functionexpress.json() і express.text() зупиняють процес на першому запиті з тілом. Читайте тіло самостійно або
використовуйте express.raw(); див. Фреймворки.