electron-builder允许安装时请求提升权限

场景

在下面的场景中可能会需要管理员权限:

  1. electron开发的软件具有文件操作功能,如果electron安装到C盘,并操作项目中(C盘)的文件,就会因权限不足报错。
  2. electron需要操作注册表等系统级关键配置
  3. 某些命令行的运行可能涉及底层,需要管理员权限

electron安装时请求提升权限

上面场景都需要提升electron运行时权限。

比较麻烦的做法是,我们可以每次运行electron时,以管理员身份运行,但是这对用户明显是不太友好的。

另一种做法是,在安装electron时,就提醒用户需要提升权限才可继续安装。

打包electron我用的是electron-builder,需要配置的参数如下:

c 复制代码
"allowElevation":true

允许安装时,请求提升权限。

安装时,会出现如图的提示信息:

我的配置模板

c 复制代码
"build": {
    "productName": "cnde-OUTSIDE",
    "appId": "cnde",
    "asar": false,
    "directories": {
      "output": "release/1.0.1/OUTSIDE"
    },
    "files": [
      "dist",
      "electron"
    ],
    "nsis": {
      "oneClick": false,
      "perMachine": true,
      "allowToChangeInstallationDirectory": true,
      "include": "./electron/installer-OUTSIDE.nsh",
      "allowElevation": true
    },
    "mac": {
      "category": "your.app.category.type"
    },
    "linux": {
      "target": [
        {
          "target": "AppImage",
          "arch": [
            "arm64"
          ]
        }
      ]
    },
    "win": {
      "icon": "./dist/electron/favicon.ico",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "ia32"
          ]
        }
      ]
    }
  },

把这些配置写在package.json中即可,注意'./electron/installer-OUTSIDE.nsh'与'./dist/electron/favicon.ico'地址,如果不清楚这是在干嘛,也不需要配置,直接删掉这两项配置即可,electron-builder会使用默认配置。

相关推荐
浪裡遊8 分钟前
Next.js路由系统
开发语言·前端·javascript·react.js·node.js·js
mapbar_front11 分钟前
职场中的顶级能力—服务意识
前端
尽兴-1 小时前
[特殊字符] 微前端部署实战:Nginx 配置 HTTPS 与 CORS 跨域解决方案(示例版)
前端·nginx·https·跨域·cors·chrom
JIngJaneIL2 小时前
助农惠农服务平台|助农服务系统|基于SprinBoot+vue的助农服务系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·助农惠农服务平台
云外天ノ☼2 小时前
待办事项全栈实现:Vue3 + Node.js (Koa) + MySQL深度整合,构建生产级任务管理系统的技术实践
前端·数据库·vue.js·mysql·vue3·koa·jwt认证
一位搞嵌入式的 genius2 小时前
前端实战开发(三):Vue+Pinia中三大核心问题解决方案!!!
前端·javascript·vue.js·前端实战
塞纳河畔的歌2 小时前
保姆级教程 | 麒麟系统安装Edge浏览器
前端·edge
多睡觉觉2 小时前
数据字典:从"猜谜游戏"到"优雅编程"的奇幻之旅
前端
嗝屁小孩纸2 小时前
开发集成热门小游戏(vue+js)
前端·javascript·vue.js
赛博切图仔2 小时前
深入理解 package.json:前端项目的 “身份证“
前端·javascript