@rPman

Как можно решить проблему с зависимостями node-re2 или node-gyp?

Я не писал приложения electron да и с node мало работал (только собственные проекты, не заглядывал далеко по зависимостям) и для меня многое непонятно, даже шокирует, во что превратилась разработка современных приложений.

Пытаюсь собрать idena-desktop electron, простая веб форма, простенький редактор картинок, основной функционал обслуживается другим приложением с доступом по rpc, не больше, всего то 1309 модулей в зависимостях, мелочи, но в данном случае не важно что это такое.

В зависимостях у него стоит node-re2, и пакетный менеджер, не найдя его локально, пытается сначала загрузить его с github из собранных там файлов в release, но запрашивает файл с кодом 102 версии 1.15.9, которого там не существует. В следствии чего он пытается собрать его с помощью npm-gyp и тоже его не находит (в зависимостях он тоже есть).

А теперь самое веселое, пытаюсь вручную разрулить и установить npm-re или npm-gyp с помощью пакетного менеджера apt, то он пытается удалить nodejs и поставить libnode64 (у них так прописано), соответственно если позволить, у него получается, но тогда логично перестает работать node и npm в принципе.

Если я верно понимаю это ошибка в репозитарии https://deb.nodesource.com/node_17.x ? Если поставить node-gyp глобально с помощью npm install -g node-gyp то все вроде отрабатывает, но в результате сборщик все равно не видит node-gyp и не может ничего собрать (кстати при дальнейших попытках сборки проекта даже не пытается, просто пишет что не найден re2), либо я не знаю что и где нужно еще подкрутить для этого.

Сами разработчики этого дела пока не спешат помогать, ну я только сегодня попробовал, на офф канале в дискорд другие тоже не помогли, откликнулся один только чтобы посетовать что тоже не осилил. Там та же фигня с их idena-indexer, фиг соберешь, а именно этот софт собирает нужную информацию по блокчейну (подробности про майнинг и валидацию), например чтобы анализировать блокчейн (поднять свой explorer)

подробности
ubuntu 20.04

# npm --version
8.1.0
# node -v
v17.0.1

# git clone https://github.com/idena-network/idena-desktop/
# git checkout tags/v0.28.1

# export NODE_OPTIONS=--openssl-legacy-provider
# npm install
...
added 2345 packages, and audited 2346 packages in 3m
...
не запускать npm audit fix --force в офф дискорде писали что этот механизм уже давно сломан (жесть, финансовые приложения пишут при наличии 17-и критических уязвимостей)

# npm run dist:linux
...
Error occurred prerendering page "/oracles/view". Read more: https://err.sh/next.js/prerender-error
Error: Cannot find module './build/Release/re2'
...
Error: Export encountered errors on following paths:
/oracles/list
/oracles/new
/oracles/view
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
profesor08
@profesor08
Так как тут электрон, то при установке билдятся нативные компоненты, библиотеки, бинарники под твою операционку. Чтоб все это заработало, придется поставить еще и питон, с++ sdk и все что попросит в ошибках в консоли. Увы, но электрон это не только js. А сами Js модули можно спокойно обновлять, апи в них редко меняется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы