18

市面上对于electron-builder打包的介绍文章很多,这里不做过多介绍,如果需要可以看苏南大叔的博客,这里只是针对打包配置进行一个总结。
为了不浪费大家时间,如果你有以下问题,可以试着看我的文档:

  • 打包后发现文件访问不了,在开发环境下是好的
  • 打包的时候,怎么设置不让安装在c盘
  • 将文件移动到根目录

配置文件如下(electron-vue)

package.json
{
  "name": "demo",
  "version": "0.0.2",
  "author": "四月 <507811581@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" // 图标名称
    }
  }
}

配置文件如下(vue-cli-plugin-electron-builder)

// vue.config.js
module.exports = {
  pluginOptions: {
    electronBuilder: {
      // 打包参数配置
      builderOptions: {
        nsis: {},
        asar: false,
      }
    }
  }
}

文档地址

使用到c编译为node文件的安装包

使用ffi sqlite robot-js等的时候,需要先使用electron-builder install-app-deps进行编译,但是呢,安装electron-rebuild需要先安装 node-gyp,你以为这样就完了? 不不不,安装node-gyp需要先安装Visual Studiopython 2.x 惊不惊喜,意不意外,所以我们需要一键安装npm i -g windows-build-tools他会给我们安装好Visual Studiopython 2.7,然后我们只需要去配置下python的环境变量就好!

问题及解决方案

  1. 问: 打包后发现文件访问不了,在开发环境下是好的,有些喜欢研究的发现是asar的问题

    答: 对的,打包为asar文件后内部是只读的,所以当你需要操作的时候,肯定不能操作呀,解决方案很多种

    • 可以使用userData存放
    • 可以设置asarfalse,详细配置参照上面写的配置文件
    • 看官方文档有一种asar可以直接将文件放置在app.asar外的写法,目前还在研究,可行,等试验成功在更新
  2. 问: 打包的时候,怎么设置不让安装在c盘

    答: 请参考nsis配置,需要注意的是nsis是需要先手动安装的,下载地址,另外在安利一个ico制作的网站

  3. 问: dll文件打包后怎么移动到根目录

    答: extraResources用来将依赖的文件放的指定位置,'./'指向app同级目录
    from目录:
    from.png
    to目录:
    to.png

  4. 有什么问题欢迎留言告知

April
436 声望12 粉丝