Warm tip: This article is reproduced from serverfault.com, please click

node.js-如何在我的电子应用程序中打包knex以使用sqlite3

(node.js - How to package knex in my electron app to use sqlite3)

发布于 2020-10-28 19:39:28

在我的电子应用程序中,我想打包knex以使用sqlite3数据库。

我的package.json文件

{
    "name": "p",
    "version": "1.0.0",
    "description": "T",
    "main": "main.js",
    "scripts": {
        "start": "electron .",
        "package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds",
        "package-win": "electron-packager . electron-tutorial-app --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"PlanGo\"",
        "package-linux": "electron-packager . electron-tutorial-app --overwrite --asar=true --platform=linux --arch=x64 --icon=assets/icons/png/icon.png --prune=true --out=release-builds",
        "rebuild": "electron-rebuild -f -w sqlite3"
    },
    "author": "R",
    "license": "MIT",
    "dependencies": {
        "custom-electron-titlebar": "^3.2.4",
        "jquery": "^3.5.1",
        "knex": "^0.21.6",
        "sqlite3": "^5.0.0"
    },
    "devDependencies": {
        "electron-packager": "^15.1.0",
        "electron-rebuild": "^2.2.0",
        "electron": "^10.1.3"
    }
}

我已经按照以下教程打包了我的应用程序https://www.christianengvall.se/electron-packager-tutorial/

Questioner
rishi
Viewed
12
rishi 2020-11-29 20:44:17

我自己回答了这个问题,因为我可以打包

首先,我使用"electron-builder": "^22.9.1",而不是electron-packager

接下来,之所以未打包,是因为未正确指定我的应用程序数据的存储位置。

我正在使用sqlite数据库和一个json文件。

在Windows上,请确保将其保存在“ APP DATA”>“你的文件夹名”下。如果你使用,Electron将自动处理此问题

jsonPath = path.join(process.env.APPDATA, "/MyFileName/jsonFile.json");

这样可以解决你可能会遇到的任何包装错误。