This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема NodeJS 14, 16.

Alternant

Участник портала
11 Дек 2023
138
23
76
20
Всем доброго вечера. Мучаюсь с проблемой. Хочу протестировать паблик, который не так давно выложили. Так вот, там в настройках EsBuild билдил сервер на NodeJS 14.Это вызывает ошибку

[ERROR] "server" package loading failed, exception stack:
ReferenceError: AbortController is not defined

AbortController появился с версии 15. Но если я поставлю 14+ версию, то получаю такой результат:
SyntaxError: Unexpected token '??='

Как это фиксится? Уже добавил nodeJs в proj.json, но никакого результата
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,644
261
100
Добрый вечер! Ошибка "ReferenceError: AbortController is not defined" возникает потому, что класс AbortController был добавлен в Node.js с версии 15. Если ваш сервер использует этот класс, то нужно использовать Node.js версии 15 или более поздней.

Ошибку "SyntaxError: Unexpected token '??='" можно исправить, установив минимальную версию Node.js, которая поддерживает оператор нулевого слияния (nullish coalescing operator) ??=. В вашем случае это версия 14.0.0 или более поздняя.

Если вы уже указали версию Node.js в файле proj.json, убедитесь, что вы правильно указали требуемую версию и что она установлена на вашей системе. Если все правильно, попробуйте перезапустить проект после изменения настроек.

Если проблема не решается, пожалуйста, предоставьте больше информации о вашем проекте и версиях, которые вы используете, чтобы мы могли помочь вам более точно.
 

Alternant

Участник портала
11 Дек 2023
138
23
76
20
Попытался вообще убрать target:
SyntaxError: Unexpected token '||='
 

Alternant

Участник портала
11 Дек 2023
138
23
76
20
Чуть прояснилось. Ошибку вызывал mongodb, т.к пытался задействовать AbortController, которого в NodeJS нет. Попытки импортнуть полифилл не увенчались успехом. Если просто апнуть версию Node, то ошибку вызывает уже inspector ?? , который задействуется в BSON
 
Последнее редактирование:

kirillzver

Гуру
BackEnd developer
2 Ноя 2020
190
118
104
Установи нужную версию ноды, можешь использовать nvm для того, чтобы удобно переключаться между ними.
После чего снеси все модули (папку node_modules) и установи их заново командой npm i --force.
 

Alternant

Участник портала
11 Дек 2023
138
23
76
20
Не знаю, как так вышло, но проблема решена.

В билде указал target: 'node16'(что уже ни раз пробывал, но не получал нужно результата). Несмотря на то, что при выводе console.log(process.version) версия 14.10, скрипт отрабатывает. Загадка и только, но все же, решено.