1.如何在打包之后,把動態配置文件比如【config.json】放在根目錄,不被打包到asar文件中
//解決思路,electron可以拷貝靜態資源,比如你把config.json放在項目的根目錄下,打包時候打包到EXE根目錄下即可。 "build": { "productName": "machine-electron-project", "appId": "com.example.yourapp", "extraResources": { "from": "./config.json", "to": "../" } } //當然如果你想把配置文件放在其他地方也是可以的,在vue中使用 fs.readFile也能讀取到,比如config.json文件在d盤下,你可以把文件路徑寫成'd:\config.json'
2.electron使用持久化存儲electron-store,在主進程中使用app.getPath('userData')是沒問題的,但是在渲染進程中使用是undifind
//渲染進程使用主進程的方法使用remote const { app,remote } = require('electron') //持久化存儲 const Store = require('electron-store'); function initStore(){ let option={ name:"userInfo",//文件名稱,默認 config fileExtension:"json",//文件后綴,默認json cwd:remote.app.getPath('userData'),//文件位置,盡量不要動 // encryptionKey:"aes-256-cbc" ,//對配置文件進行加密 clearInvalidConfig:true, // 發生 SyntaxError 則清空配置, } Vue.prototype.$electronStore = new Store(option); } export default { initStore }
3.下面關於electron-vue打包時的配置
{ "name": "demo", "version": "0.0.2", "author": "<1392293229@qq.com>", "build": { // electron-builder配置 "productName":"xxxx",//項目名 這也是生成的exe文件的前綴名 "appId": "xxxxx",//包名 "copyright":"xxxx",//版權 信息 "compression": "store", // "store" | "normal"| "maximum" 打包壓縮情況(store 相對較快),store 39749kb, maximum 39186kb "directories": { "output": "build" // 輸出文件夾 }, "asar": false, // asar打包 "extraResources": { // 拷貝dll等靜態文件到指定位置 "from": "./app-update.yml", "to": "./b.txt" }, "win": { "icon": "xxx/icon.ico"//圖標路徑, "extraResources": { // 拷貝dll等靜態文件到指定位置(用於某個系統配置) "from": "./app-update.yml", "to": "./b.txt" } }, "nsis": { "oneClick": false, // 一鍵安裝 "guid": "xxxx", //注冊表名字,不推薦修改 "perMachine": true, // 是否開啟安裝時權限限制(此電腦或當前用戶) "allowElevation": true, // 允許請求提升。 如果為false,則用戶必須使用提升的權限重新啟動安裝程序。 "allowToChangeInstallationDirectory": true, // 允許修改安裝目錄 "installerIcon": "./build/icons/aaa.ico", // 安裝圖標 "uninstallerIcon": "./build/icons/bbb.ico", //卸載圖標 "installerHeaderIcon": "./build/icons/aaa.ico", // 安裝時頭部圖標 "createDesktopShortcut": true, // 創建桌面圖標 "createStartMenuShortcut": true, // 創建開始菜單圖標 "shortcutName": "xxxx" // 圖標名稱 } } }