解压缩后无法在 MacOS Darwin 上访问 Electron-Forge SQLite3 数据库
Electron-Forge SQLite3 database not accessible on MacOS Darwin build after unzipping
我在自由职业者的帮助下开发的 CRUD 桌面应用程序出现了一些问题。这是一个 electron-forge 版本,可以在 Windows 10 上无缝运行,并且最初在访问 out 文件夹时可以在 MacOS 上运行,奇怪的事情发生在:
- 我使用
npm run publish
压缩 Mac/Darwin 实例
- 我手动package.zip结果
npm run make
当我执行此操作并将文件解压缩到 运行 时,SQLite 集成完全失败。该应用似乎在启动时运行,但无法对数据库对象进行任何更改,也无法创建新对象。
整合数据库的自由职业者说他无法解决这个问题,但如果不压缩应用程序以供交付,就不可能将应用程序投放市场。如果需要,我可以 post 编写代码,我什至不知道代码的哪个方面是相关的,并且觉得我的 package.json
中必须有一些我可以 install/put 的东西可能会解决这个问题,但我不确定。
这是我的 package.json 文件以备不时之需:
{
"name": "C",
"productName": "C",
"version": "1.0.2",
"description": "My Electron application description",
"main": "src/index.js",
"scripts": {
"start": "cross-env NODE_ENV=development electron-forge start",
"package": "electron-forge package",
"make": "cross-env NODE_ENV=production electron-forge make",
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
},
"keywords": [],
"author": {
"name": "A",
"email": "xxx@gmail.com"
},
"license": "NA",
"config": {
"forge": {
"packagerConfig": {
"icon": "src/images/n.ico"
},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "C"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
},
"dependencies": {
"axios": "^0.21.1",
"bootstrap": "^4.6.0",
"cross-env": "^7.0.3",
"ebay-oauth-nodejs-client": "^1.2.1",
"electron-better-ipc": "^1.1.1",
"electron-squirrel-startup": "^1.0.0",
"electron-store": "^7.0.2",
"jquery": "^3.6.0",
"json-csv": "^3.0.6",
"sequelize": "^6.5.0",
"sqlite3": "^5.0.0"
},
"devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.54",
"@electron-forge/maker-deb": "^6.0.0-beta.54",
"@electron-forge/maker-rpm": "^6.0.0-beta.54",
"@electron-forge/maker-squirrel": "^6.0.0-beta.54",
"@electron-forge/maker-zip": "^6.0.0-beta.54",
"electron": "10.1.5"
}
}
我发现通过简单地创建一个 DMG 目标(参见 https://www.electronforge.io/config/makers/dmg)我不需要担心解压缩过程。我相信 DMG 是打包 Mac OS 应用程序的理想方法,这些应用程序内部集成了 SQLite 数据库。
我在自由职业者的帮助下开发的 CRUD 桌面应用程序出现了一些问题。这是一个 electron-forge 版本,可以在 Windows 10 上无缝运行,并且最初在访问 out 文件夹时可以在 MacOS 上运行,奇怪的事情发生在:
- 我使用
npm run publish
压缩 Mac/Darwin 实例 - 我手动package.zip结果
npm run make
当我执行此操作并将文件解压缩到 运行 时,SQLite 集成完全失败。该应用似乎在启动时运行,但无法对数据库对象进行任何更改,也无法创建新对象。
整合数据库的自由职业者说他无法解决这个问题,但如果不压缩应用程序以供交付,就不可能将应用程序投放市场。如果需要,我可以 post 编写代码,我什至不知道代码的哪个方面是相关的,并且觉得我的 package.json
中必须有一些我可以 install/put 的东西可能会解决这个问题,但我不确定。
这是我的 package.json 文件以备不时之需:
{
"name": "C",
"productName": "C",
"version": "1.0.2",
"description": "My Electron application description",
"main": "src/index.js",
"scripts": {
"start": "cross-env NODE_ENV=development electron-forge start",
"package": "electron-forge package",
"make": "cross-env NODE_ENV=production electron-forge make",
"publish": "electron-forge publish",
"lint": "echo \"No linting configured\""
},
"keywords": [],
"author": {
"name": "A",
"email": "xxx@gmail.com"
},
"license": "NA",
"config": {
"forge": {
"packagerConfig": {
"icon": "src/images/n.ico"
},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "C"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
},
"dependencies": {
"axios": "^0.21.1",
"bootstrap": "^4.6.0",
"cross-env": "^7.0.3",
"ebay-oauth-nodejs-client": "^1.2.1",
"electron-better-ipc": "^1.1.1",
"electron-squirrel-startup": "^1.0.0",
"electron-store": "^7.0.2",
"jquery": "^3.6.0",
"json-csv": "^3.0.6",
"sequelize": "^6.5.0",
"sqlite3": "^5.0.0"
},
"devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.54",
"@electron-forge/maker-deb": "^6.0.0-beta.54",
"@electron-forge/maker-rpm": "^6.0.0-beta.54",
"@electron-forge/maker-squirrel": "^6.0.0-beta.54",
"@electron-forge/maker-zip": "^6.0.0-beta.54",
"electron": "10.1.5"
}
}
我发现通过简单地创建一个 DMG 目标(参见 https://www.electronforge.io/config/makers/dmg)我不需要担心解压缩过程。我相信 DMG 是打包 Mac OS 应用程序的理想方法,这些应用程序内部集成了 SQLite 数据库。