ребилд модуля под свою текущую версию ноды с помощью npx electron-rebuild -f -m node_modules/better-sqlite3. Приложение собирается и работает, к БД коннектиться могу. Но при попытке запуска тестов через vitest получаю снова ошибку:
The module '/node_modules/better-sqlite3/build/Release/better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 123. This version of Node.js requires
NODE_MODULE_VERSION 115. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
Кто может объяснить, какого хрена происходит?
> node -v
v20.15.0
> node -p 'process.versions.modules'
115
Попробуйте команду npm rebuild better-sqlite3 или как там пакет называется
Разобрался. Electron поставляется в бандле со своей версией ноды. Поэтому, npx electron-rebuild -f -m node_modules/better-sqlite3 ребилдит под електроновскую версию ноды. Поэтому мое приложение работало корректно, а vitest запускался с локальной версией ноды. Один из вариантов: запускать vitest через електроновскую ноду: ELECTRON_RUN_AS_NODE=1 electron ./node_modules/.bin/vitest run -r packages/main
Обсуждают сегодня