В каждом разделе приводится ошибка в том виде, в каком её выводит 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(); см. Фреймворки.