Я создаю приложение Electron, которое просто представляет веб-URL в BrowserWindow. Я использую Electron-Builder для упаковки приложения в виде пакета .deb и Snap. .deb просто работает. Но электронный магазин не имеет разрешения на доступ к config.json в каталоге HOME, когда я строю оснастку, используя ' строго ' ограничение.
Все отлично работает, когда я использую ' classic ' или ' devmode '.
Я попытался очистить все кэши npm, файлы configStore в $ HOME / .config.
main.js запрашивает вызовы ElectronStore.set()
при отправке событий изменения размера и закрытия. Вот когда появляется ошибка.
соответствующий main.js код
mainWindow.on('close', function() {
conf.set('windowBounds', mainWindow.getBounds())
conf.set("lastLink", mainWindow.webContents.getURL())
})
сборка инструкция для сборщик электронов в package.json
"build": {
"appId": "org.anuj.${name}",
"asar": true,
"copyright": "MIT ©2019 Anuj Datar",
"linux": {
"category": "Notes;Office;Productivity",
"packageCategory": "Notes;Office;Productivity",
"description": "OneNote Desktop Client for Linux",
"synopsis": "OneNote Desktop Client",
"icon": "./src/images/icon.icns",
"target": [
"deb",
"AppImage",
"snap"
],
"maintainer": "Anuj Datar <anuj.datar@gmail.com>",
"artifactName": "${name}-${version}-${arch}.${ext}"
},
"deb": {
"depends": [
"gconf2",
"gconf-service",
"libnotify4",
"libappindicator1",
"libxtst6",
"libnss3"
]
},
"snap": {
"confinement": "strict",
"grade": "stable"
},
"appImage": {
"license": "LICENSE.md"
}
}
}
Предполагается, что размер окна и последняя посещенная ссылка сохраняются в конфигурации, поэтому сеанс можно возобновить при следующем запуске приложения. Вместо этого ничего не сохраняется, и я получаю следующее сообщение об ошибке:
Произошла ошибка JavaScript в основном процессе
Неисследованное исключение:
Ошибка: EPERM: операция не разрешена, chown
«/home/anuj/snap/onenote-desktop/x1/.config/OneNote/config.json.1014786569'
- в Object.chownSync (fs.js: 1142: 3)
- в Function.writeFileSync [как синхронизация] (/snap/onenote-desktop/x1/resources/app.asar/node_modules/write-file-atomic/index.js:196:27)
- в магазине ElectronStore.set [как магазин] (/snap/onenote-desktop/x1/resources/app.asar/node_modules/conf/index.js:227:19)
- в магазине ElectronStore.set (/snap/onenote-desktop/x1/resources/app.asar/node_modules/conf/index.js:152:14)
- в BrowseWindow.
<anonymous>
(/snap/onenote-desktop/x1/resources/app.asar/src/main.js:44:10)
- в BrowserWindow.emit (events.js: 194: 13)
Вот проблема GitHub