簡體   English   中英

將 sqlite3 添加到 Electron-forge 應用程序后,應用程序將不再運行

[英]After adding sqlite3 to Electron-forge app, app wont run anymore

我正在嘗試將 sqlite3 集成到我的電子鍛造應用程序中。 但無論我嘗試什么,它總是失敗。 我試過了

  1. 使用"scripts": {"postinstall": "install-app-deps",}
  2. 使用npm install sqlite3 --build-from-source安裝它
  3. 像這樣使用電子重建"scripts": {"rebuild": "electron-rebuild -f -w sqlite3"}

以上所有內容都來自某個地方的某個帖子,人們在將 sqlite3 與電子鍛造結合使用時會遇到問題。 現在的問題是,當我嘗試運行我的應用程序時,如果我做了上述任何事情,我會得到以下(編輯路徑)

An unhandled error has occurred inside Forge:
Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu erm�glichen, m�ssen Sie den Schalter "/m" hinzuf�gen.
  unpack_sqlite_dep
  sqlite3.c
  win_delay_load_hook.cc
  sqlite3.vcxproj -> C:\...\angular\node_modules\sqlite3\build\Release\\sqlite3.lib
  database.cc
  node_sqlite3.cc
  statement.cc
  win_delay_load_hook.cc
..\src\database.cc(49): warning C4996: 'Nan::MakeCallback': was declared deprecated [C:\...\angular\node_modules\sqlite3\build\node_sqlite3.vcxproj]
  C:\...\angular\node_modules\sqlite3\node_modules\nan\nan.h(929): note: see declaration of 'Nan::MakeCallback'

還有很多更像這些警告。

在所有這些警告之間的某個地方,我實際上收到了一個錯誤:

C:\...\.electron-gyp\.node-gyp\iojs-3.0.13\x64\iojs.lib : fatal error LNK1107: invalid or corrupt file: cannot read at 0x2F866A [C:\...\angular\node_modules\sqlite3\build\node_sqlite3.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\...\angular\node_modules\node-gyp\lib\build.js:262:23)
gyp ERR! stack     at emitTwo (events.js:126:13)
gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Windows_NT 10.0.17134
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\...\\angular\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--target=3.0.13" "--arch=x64" "--dist-url=https://atom.io/download/electron" "--build-from-source" "--module_name=node_sqlite3" "--module_path=C:\\...\\angular\\node_modules\\sqlite3\\lib\\binding\\electron-v3.0-win32-x64" "--host=https://mapbox-node-binary.s3.amazonaws.com" "--remote_path=./{name}/v4.0.6/{toolset}/" "--package_name=electron-v3.0-win32-x64.tar.gz"
gyp ERR! cwd C:\...\angular\node_modules\sqlite3
gyp ERR! node -v v8.11.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

有了所有這些警告和一個錯誤,我完全迷失了,所以非常感謝任何幫助。

使用電子偽造,使用 sqlite3 運行應用程序似乎存在一些問題。 嘗試將 sqlite3(我使用的是 Better-sqlite3)作為 webpack 配置中的外部依賴項。

  externals: {
    'better-sqlite3': 'commonjs better-sqlite3',
  },

這在開發環境中有效,但在構建中失敗(在運行 make 之后)。
better-sqlite3不會在構建中找到,因為我們已經使它成為外部依賴。

還沒有得到合適的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM