zoukankan      html  css  js  c++  java
  • electron使用动态配置文件及持久化存储

    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" // 图标名称
        }
      }
    }
  • 相关阅读:
    痞子衡嵌入式:单片机AI的春天已来,ARM Cortex-M55发布了
    《痞子衡嵌入式半月刊》 第 1 期
    痞子衡嵌入式:ARM Cortex-M内核那些事(6)- 系统堆栈机制
    痞子衡嵌入式:嵌入式里堆栈原理及其纯C实现
    将博客搬至CSDN
    痞子衡嵌入式:知名半导体MCU大厂软件开发C代码规范
    痞子衡嵌入式:语音处理工具pzh-speech诞生记(4)- 音频录播实现(PyAudio)
    痞子衡嵌入式:语音处理工具pzh-speech诞生记(2)- 界面构建(wxFormBuilder3.8.0)
    痞子衡嵌入式:ARM Cortex-M内核那些事(3.2)- 为Security而生(M23/33/35P)
    痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU外设那些事(2)- 百变星君FlexRAM
  • 原文地址:https://www.cnblogs.com/lizhao123/p/14355242.html
Copyright © 2011-2022 走看看