Ошибка: не удалось найти файл привязок better-sqlite3.node
Эта проблема
Есть некоторые проблемы, возможно, с моей установкой better-sqlite3
потому что, когда я пытаюсь выполнить свой index.js (нажмите, чтобы показать его на pastebin) с
node index.js
всегда есть один и тот же результат. Я пробовал на MacOS, он работает, но на моей машине дистрибутив на базе Linux Lite Ubuntu не выдает следующую ошибку:
/home/mp8/webproject/electron-better-sqlite/node_modules/bindings/bindings.js:96
throw err
^
Error: Could not locate the bindings file. Tried:
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/build/better_sqlite3.node
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/build/Debug/better_sqlite3.node
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/build/Release/better_sqlite3.node
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/out/Debug/better_sqlite3.node
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/Debug/better_sqlite3.node
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/out/Release/better_sqlite3.node
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/Release/better_sqlite3.node
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/build/default/better_sqlite3.node
→ /home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/compiled/8.11.3/linux/x64/better_sqlite3.node
at bindings (/home/mp8/webproject/electron-better-sqlite/node_modules/bindings/bindings.js:93:9)
at Object.<anonymous> (/home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/lib/database.js:4:40)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/home/mp8/webproject/electron-better-sqlite/node_modules/better-sqlite3/index.js:2:18)
Какова моя цель?
Я хочу использовать лучше-sqlie33 в качестве базы данных, потому что sqlite3 не предоставляет поддержку узла 8.x и более поздних версий.
Что я пробовал:
Это руководство по устранению неисправностей номер один и два, но у меня все еще была та же ошибка.
make init
, впервые установленbetter-sqlite3
дал мне файл ошибки make / makefile not found. Я получил ту же ошибку, когда я делаюnpm install better-sqlite3 --save
Убедитесь в том, что better_sqlite3.node находится на пути моего узла-модуля. да его там нет
Что я хочу?
Я хочу правильно запустить index.js, как я запускал его на Mac.
Dependecies
package.json после make init, если не просто
better-sqlite3
зависимости
{
"_from": "better-sqlite3",
"_id": "better-sqlite3@4.1.4",
"_inBundle": false,
"_integrity": "sha512-Y11HN9PQ9YUeKFMrmiHyOLAKElk2ATJzBZJvuzNwTMxoS7vUEEyLnUCtcBFqViLwbomr0RQwp2MBy/ogxF50PA==",
"_location": "/better-sqlite3",
"_phantomChildren": {},
"_requested": {
"type": "tag",
"registry": true,
"raw": "better-sqlite3",
"name": "better-sqlite3",
"escapedName": "better-sqlite3",
"rawSpec": "",
"saveSpec": null,
"fetchSpec": "latest"
},
"_requiredBy": [
"#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-4.1.4.tgz",
"_shasum": "9fe1dcf7b699087b98b1997cbb00261e265897e2",
"_spec": "better-sqlite3",
"_where": "/home/mp8/webproject/electron-better-sqlite",
"author": {
"name": "Joshua Wise",
"email": "joshuathomaswise@gmail.com"
},
"bugs": {
"url": "https://github.com/JoshuaWise/better-sqlite3/issues"
},
"bundleDependencies": false,
"dependencies": {
"bindings": "^1.3.0",
"integer": "^1.0.5"
},
"deprecated": false,
"description": "The fastest and simplest library for SQLite3 in Node.js.",
"devDependencies": {
"benchmark": "^2.1.4",
"chai": "^4.1.2",
"cli-color": "^1.2.0",
"fs-extra": "^5.0.0",
"mocha": "^4.1.0",
"sqlite": "^2.9.0"
},
"gypfile": true,
"homepage": "http://github.com/JoshuaWise/better-sqlite3",
"keywords": [
"sql",
"sqlite",
"sqlite3",
"custom",
"aggregate",
"database",
"transactions"
],
"license": "MIT",
"name": "better-sqlite3",
"repository": {
"type": "git",
"url": "git://github.com/JoshuaWise/better-sqlite3.git"
},
"scripts": {
"benchmark": "node benchmark",
"install": "node-gyp rebuild",
"install-debug": "node-gyp rebuild --debug",
"lzz": "lzz -hx hpp -sx cpp -k BETTER_SQLITE3 -d -hl -sl -e ./src/better_sqlite3.lzz",
"posttest": "rm -r ./temp/",
"prepublishOnly": "npm run lzz",
"pretest": "rm -r ./temp/ || true && mkdir ./temp/",
"rebuild": "npm run lzz && node-gyp rebuild",
"rebuild-debug": "npm run lzz && node-gyp rebuild --debug",
"test": "$(npm bin)/mocha --bail --timeout 5000 --slow 5000"
},
"version": "4.1.4"
}
моя машина
Linux Lite 4.0, Ubuntu Based.
NVM (Node version Manager)
Node 8.11.1
NPM 5.6
4 ответа
У меня была проблема, которая выглядит как ваша проблема
просто попробуйте это:
projectToto> $ sudo rm -rf node_modules/
projectToto> $ npm install bindings
npm о привязке -> https://www.npmjs.com/package/bindings
Я столкнулся с подобной ситуацией, пока не понял, что не установил на эту машину явно инструменты сборки. Вот что разрешило это для меня (Ubuntu) при запуске из каталога проекта
$ rm -rf node_modules/
$ rm package-lock.json
$ npm install build-tools -g
$ npm install
Для меня проблема оказалась циклической зависимостью в моем проекте (angular 10.1.1, node 12.22.6).
Разобраться в этом было немного сложно. Компилятор Angular выдал несколько ошибок типа «ПРЕДУПРЕЖДЕНИЕ в обнаружении циклической зависимости: ...», но ни одна из них не включала файлы, в которых была фактически введена ошибка. Мне пришлось возвращаться к проекту до фиксации, в которой проблема не возникла, а затем исследовать, что изменилось. Это изменение казалось довольно безобидным - один файл экспортировал константу, которую импортировал другой. Изменение направления экспорта решило проблему.
Если ничего не работает....
создать новую папку :
установите новую копию с помощью npm, которая создаст папку node_module со всеми необходимыми файлами.
скопируйте папку node_module и замените существующей папкой node_module проекта.
закрыть cmd
перезагрузить сервер.
И это сработало для меня....