Ошибка установки SQLITE3 для Electron в Windows

Я пытаюсь использовать SQLITE3 с моим приложением Electron и, наконец, создать исполняемый файл с помощью модуля electronic-packager.

Я устанавливаю sqlite3 с помощью команды --build-from-source, поскольку electron-rebuild не создает sqlite3 вместе с ним. Ниже мой package.json

{
  "name": "dashboard",
  "version": "1.0.0",
  "main": "app/main.js",
  "scripts": {
    "start": "electron .",
    "package-win": "electron-packager . --overwrite --platform=win32 --arch=ia32 --icon=icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"Serum Dashboard\""
  },
  "author": "Amar Shah",
  "license": "ISC",
  "dependencies": {
    "sqlite3": "^4.1.1"
  },
  "devDependencies": {
    "electron": "^7.1.10",
    "electron-packager": "^14.2.0"
  }
}

Я выполнил windows-build-tools и установил SQLITE3 с помощью команды npm install sqlite3 --build-from-source --runtime=electron --target=7.1.10 --dist-url=https://atom.io/download/electron --python=2.7

Во время работы это дает мне ошибку ниже


> [email protected] install C:\serum-dashboard\node_modules\sqlite3
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
  unpack_sqlite_dep
  '2.7' is not recognized as an internal or external command,
  operable program or batch file.
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(209,5): error MSB6006: "cmd.exe" exited with code 1. [C:\serum-dashboard\node_modules\
sqlite3\build\deps\action_before_build.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:223:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "build" "--fallback-to-build" "--module=C:\\serum-dashboard\\node_modules\\sqlite3\\lib\\binding\\electron-v7.1-win32-x64\\node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=C:\\serum-dashboard\\node_modules\\sqlite3\\lib\\binding\\electron-v7.1-win32-x64" "--napi_version=5" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=electron-v7.1"
gyp ERR! cwd C:\serum-dashboard\node_modules\sqlite3
gyp ERR! node -v v12.14.1
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok

Пожалуйста, помогите мне решить эту проблему


person Amar Shah    schedule 30.01.2020    source источник


Ответы (2)


Вы должны попробовать вот так

"scripts": {
            "postinstall": "install-app-deps"
    }
person Mayank Vadiya    schedule 30.01.2020

Я получал эту ошибку unpack_sqlite_dep 'Python2.7' is not recognized as an internal or external command.

У меня был установлен Python, и он был в пути.

У меня также были установлены инструменты сборки MS, но в узле была настройка конфигурации для использования другой версии инструментов сборки, чем у меня - у меня 2017 и теперь 2019, но в файле конфигурации npm он был настроен на использование 2015 года.

это то, что у меня было в глобальной конфигурации npm, найденной в AppData\Roaming\npm\etc:
python = python3.9
msvs_version = 2015

для этого есть еще одно место в папке пользователя. Я удалил разделы python и msvs из обоих этих файлов, и теперь он работает.

Полезная команда, чтобы увидеть, что находится в вашей конфигурации npm: npm config list

person Ron    schedule 29.04.2021