vue+electron 打包发布

一、Electron简介

        Electron是什么?

      

        Electron 是 GitHub 开发的一个开源框架,是网页应用 (web apps) 的一个原生包装层,它允许使用 Node.js(作为后端)和 Chromium(作为前端)完成桌面 GUI 应用程序的开发。

        Electron 可以用于构建具有 HTML、CSS、JavaScript 的跨平台桌面应用程序,它通过将 Chromium 和 node.js 合同一个运行的环境中来实现这一点,应用程序可以打包到 Mac、Windows 和 Linux 系统上。

二、electron

1、环境配置

        运行环境:内置的 Node.js(v16.15.1)

        包管理器:npm(8.11.0)

2、创建项目

 2.1、初始化 npm 项目

mkdir my-electron-app && cd my-electron-app
npm init

        package.json文件:

{
  			"name": "my-electron-app",
  			"version": "1.0.0",
  			"description": "try",
  			"main": "index.js",
  			"keywords": [],
  			"author": "fy",
  			"license": "ISC",
		}

        注意:

        entry point 应为 index.js.

        author 与 description 可为任意值,但对于应用打包是必填项。

2.2、安装electron

npm install --save-dev electron

        成功直接进行下一步,失败则参考4.1解决问题

2.3、在package.json配置文件中的scripts字段下增加一条start命令

{
 	"scripts": {
    	"start": "electron ."
  	}
}	

       注意:此脚本将告诉 Electron 在您项目根目录运行 此时,您的应用将立即抛出一个错误提示您它无法找到要运行的应用

2.4、运行start命令

npm start

3、文件结构介绍

                

        Package.json:

        init初始化命令生成的配置文件。

        Index.js:

        任何 Electron 应用程序的入口都是 index(main) 文件。 这个文件控制了主进程,它运行在一个完整的Node.js环境中,负责控制您应用的生命周期,显示原生界面,执行特殊操作并管理渲染器进程。

        preload.js:

        预加载脚本文件,该脚本通过 versions 这一全局变量,将 Electron 的 process.versions 对象暴露给渲染器。

        renderer.js:

        这个文件中包含的代码可以在接下来使用与前端开发相同的 JavaScript API 和工具。例如使用 webpack 打包并最小化代码。

4、问题总结

4.1、根据官方文档执行npm install --save-dev electron命令无法安装问题

4.1.1、安装淘宝镜像命令:

​
npm config set electron_mirror CNPM Binaries Mirror 

​

4.1.2、安装electron到项目:

npm install --save-dev electron@24.2.0

4.2、解决运行窗口中文乱码问题

        在package.json中,修改一下start的配置:

"scripts": {

     "start": "chcp 65001 && electron ."

 }

        再次运行效果:

三、electron-builder打包electron

        electron-builder 是 Electron 应用程序的打包、构建和发布工具,可将应用程序打包为可执行文件、安装程序和软件包,并支持多个平台。以下是 electron-builder 的详细教程:

1、安装 electron-builder

        在命令行中输入以下命令以全局安装 electron-builder:

npm install electron-builder -g

2、配置 package.json 文件

        在 package.json 文件中添加以下内容以指定应用程序的名称、版本和主入口文件等信息:

{

            "name": "my-electron-app",

            "productName": "My Electron App",

            "version": "1.0.0",

            "description": "My electron app description",

            "main": "main.js",

            "scripts": {

                "start": "electron ."

            },

            "author": "Your Name",

            "license": "MIT",

            "build": {

                 "appId": "com.example.my-electron-app",

                 "mac": {

                     "category": "public.app-category.utilities"

                 },

                 "directories": {

                     "output": "dist"

                 }

            }

}

3、添加构建脚本

        在 package.json 文件的 "scripts" 属性中添加以下脚本以使用 electron-builder 进行构建:

{

            "scripts": {

                 ...

                 "build:win": "electron-builder --win",

                 "build:mac": "electron-builder --mac",

                 "build:linux": "electron-builder --linux"

            }

}

4、添加应用程序图标

      在项目根目录下创建一个 "build" 目录,并在该目录中添加应用程序图标文件,例如 "icon.icns" 和 "icon.ico"(最小为256*256)。

5、进行构建

        在命令行中运行以下脚本以进行构建:

npm run build:win   # 构建 Windows 版本

npm run build:mac   # 构建 macOS 版本

npm run build:linux # 构建 Linux 版本

        构建完成后,在 "dist" 目录中将生成可执行文件、安装程序和软件包。

 

 

        以上是 electron-builder 的基本使用教程,你可以根据自己的需求配置更多选项,如输出格式、签名证书等。

        完整代码:

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "description": "first",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "chcp 65001 && electron .",
    "dist": "electron-builder --win --x64",
    "build:win": "electron-builder --win",
    "build:mac": "electron-builder --mac",
    "build:linux": "electron-builder --linux"
  },
  "keywords": [
    "mayan"
  ],
  "author": "mayan",
  "license": "ISC",
  "devDependencies": {
    "electron": "^24.2.0",
    "electron-builder": "^23.6.0"
  },
  "build": {
    "appId": "com.myelectronapp.app",
    "productName": "My Electron App",
    "directories": {
      "output": "dist"
    },
    "mac": {
      "category": "public.app-category.utilities"
    },
    "win": {
      "target": ["nsis","zip"],
      "icon": "build/icon.ico"
    },
    "nsis": {
      "oneClick": false,
      "perMachine": true,
      "allowElevation": true,
      "allowToChangeInstallationDirectory": true,
      "installerIcon": "build/icon.ico",
      "uninstallerIcon": "build/icon.ico",
      "installerHeaderIcon": "build/icon.ico",
      "createDesktopShortcut": true,
      "createStartMenuShortcut": true,
      "shortcutName": "My Electron App"
    }
  }
}

        nsis配置:

"nsis": {
  "oneClick": false, // 是否一键安装
  "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", // 图标名称
  "include": "build/script/installer.nsh", // 包含的自定义nsis脚本 这个对于构建需求严格得安装过程相当有用。
},

四、vue+electron

1、开发环境准备

1.1、运行环境:Node.js

        包管理器:npm

1.2、安装 Vue Cli

npm install @vue/cli -g
npm install @vue/cli-service -g
npm install webpack -g

1.3、全局安装 Electron

npm install -g electron

1.4、查看是否安装成功

2、搭建vue项目

2.1、首先使用 vue-cli 搭建基础 vue框架

vue create vue-demo

2.2、运行vue      

cd vue-demo

npm run serve

3、集成 Electron

3.1、项目下安装electron      

npm i -D electron@24.2.0(全局安装的版本)

vue add electron-builder

 

        这步是选择Electron的版本,这里选择最新版本13.0.0,等待安装完成即可。

安装完成后会在src目录下生成background.js,并在package.json 文件中修main为:

        "main": “background.js”

3.2、打开开发服务器

 npm run electron:serve        

3.3、主进程及渲染进程

        electron 主要分为主进程(也就是background.js)、渲染进程(也就是vue开发的页面)和GPU进程等,但是我们主要使用的就是主进程和渲染进程,其他进程暂时不做深入研究。

主进程:

        a.一个应用中有且只有一个主进程

        b.创建窗口等所有系统事件都要在主进程中进行

渲染进程:

        a.每创建一个web页面都会创建一个渲染进程

        b.每个web页面运行在它自己的渲染进程中

        c.每个渲染进程是独立的,它只关心它所运行的页面

主进程的主要主要作用:

        a.创建渲染进程

        b.与系统底层交互

        c.管理应用程序的生命周期

3.4、将项目打包成exe

npm run electron:build

        打包完成之后,根目录下多了一个dist_electron文件夹,文件夹下xxx.exe就是需要分发给用户的包。

 

4、electron修改vue项目打包后的exe图标

4.1、安装electron-icon-builder

npm i electron-icon-builder

4.2、在package.jsonscripts中添加一条命令并保存

   "electron:generate-icons": "electron-icon-builder --input=./public/icon.png --output=build --flatten"

4.3、将准备的图片命名为icon.png并复制到public目录下 

4.4、执行命令:npm run electron:generate-icons生成图片

npm run electron:generate-icons

4.5、生成的一系列图片在项目中多出来的build目录下的icons 

4.6、删除dist_electron文件夹,重新执行打包命令

npm run electron:build

5、electron-builder 设置用户可以自己选择安装目录

       设置nsis,有两种方式:

5.1、如果是package.json文件,添加以下配置

"build":{

     "nsis": {

          "oneClick": false,

          "allowToChangeInstallationDirectory": true

     }

}

5.2、如果是vue.config.js文件,添加以下配置      

 module.exports = defineConfig({

             transpileDependencies: true,

             pluginOptions: {

                  electronBuilder: {

                        builderOptions: {//解决用户不能自己选择安装目录

                             nsis: {

                                   oneClick: false,

                                   allowToChangeInstallationDirectory: true

                             }

                        }

                  }

             }

})

5.3、删除dist_electron文件夹,重新执行打包命令,npm run electron:build,安装效果如下:

6、问题总结

6.1、执行vue add electron-builder报错:

        解决方法:在项目根目录下安装报错中对应的electron版本

6.2、vue+electron-builder打包桌面应用程序,改变桌面图标和程序左上角图标显示不全的问题

        1)准备1024*1024尺寸的png格式的图片,将该图片放在/public目录下;

        2)在vue.config.js中配置如下(红色框)

 

6.3、执行npm install --save-dev electron@24.2.0报错  

        可能是npm版本问题报错,在原来的命令基础上加上--legacy-peer-deps:

npm install --save-dev electron@24.2.0 --legacy-peer-deps

五、数字签名

1、windows

        参考链接地址:Electron打包(四)——electronr-builder打包windows进行签名 - 简书

2、mac

        参考链接地址:【Electron】vue+electron代码签名(mac篇)

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: VueElectron是一个基于Vue.js和Electron的框架,它可以帮助开发人员快速构建跨平台的桌面应用程序。Vue.js是一个流行的JavaScript框架,用于构建交互式Web界面,而Electron是一个基于Chromium和Node.js的框架,可以将Web技术用于桌面应用程序的开发。使用VueElectron可以使开发人员更轻松地开发功能丰富的桌面应用程序,并且可以同时支持Windows,Mac和Linux等多个平台。 ### 回答2: Vue Electron是一个基于Vue.js和Electron的框架,用于开发跨平台的桌面应用程序。Vue.js是一个流行的JavaScript框架,用于构建用户界面,而Electron是一个允许使用JavaScript、HTML和CSS开发桌面程序的开源框架。 Vue Electron的主要优点是它将Web开发和桌面应用程序开发结合在一起。开发者可以使用Vue.js的灵活性和易用性来构建用户界面,然后使用Electron将应用程序打包成可在Windows、macOS和Linux等平台上运行的桌面应用程序。 使用Vue Electron,可以利用丰富的Vue生态系统,包括Vue Router和Vuex等插件。开发者可以使用这些插件来管理应用程序的路由和状态,从而更容易地构建复杂的桌面应用程序。 此外,Vue Electron还提供了一些工具和技术,使开发桌面应用程序更加方便。例如,开发者可以使用Electron Builder来快速构建和打包应用程序,也可以使用Electron Debug工具来调试应用程序。另外,还有一些社区提供的插件,用于添加桌面通知、系统托盘和本地文件访问等功能。 总的来说,Vue Electron是一个强大而灵活的框架,可以让开发者使用Vue.js来构建出色的用户界面,并使用Electron将应用程序打包成跨平台的桌面应用程序。通过结合VueElectron的优势,Vue Electron能够帮助开发者更轻松地开发出功能丰富、易于维护的桌面应用程序。 ### 回答3: Vue Electron是一种结合了Vue.js和Electron框架的开发工具,用于创建跨平台的桌面应用程序。Vue.js是一种流行的JavaScript框架,用于开发现代的单页面应用程序。而Electron是一个开源的框架,可以利用前端技术(HTML、CSS和JavaScript)来构建跨平台的桌面应用程序。Vue Electron将这两种技术结合在一起,提供了一个强大的工具,使开发者能够轻松地使用Vue.js构建用户界面,并通过Electron将其打包为可在不同操作系统上运行的应用程序。 使用Vue Electron可以带来许多优势。首先,Vue.js的简洁语法和响应式数据绑定功能使得构建复杂的用户界面变得简单和高效。而Electron的跨平台特性则允许开发者使用相同的代码库创建可以同时运行在Windows、Mac和Linux等操作系统上的应用程序。 另外,Vue Electron还提供了许多工具和插件,使得开发过程更加便捷,例如vue-cli-plugin-electron-builder插件可以帮助开发者轻松地将Vue.js应用打包成可执行文件,并自动生成安装程序。此外,还有一些其他的插件可以帮助开发者实现一些高级功能,比如与本地文件系统的交互、系统托盘功能等。 总之,Vue Electron是一个非常强大的开发工具,它将Vue.js和Electron框架结合在一起,提供了一种便捷的方式来创建跨平台的桌面应用程序。无论你是前端开发者还是想要创建一个漂亮、高效的跨平台应用程序的个人或企业,Vue Electron都是一个值得考虑的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值