Electron学习笔记Part3-利用Electron builder应用打包EXE

HelloWorld写完并能够成功运行了,接下来将这个HelloWorld应用打包成exe安装包,这样就可以拿到其他电脑安装运行了,个人总结两种打包方式,其实现原理相同,但过程不同。

目前刚刚实验利用Electron builder工具进行打包,需要安装Electron builder模块,在cmd中执行命令

    cnpm install electron builder

如图即已安装完成,可至目录中查看安装后的文件

验证electron builder是否安装成功,在cmd中输入build --help,可以获取到帮助信息即为安装成功。

需要在项目文件夹下新建资源文件夹,将程序发布所用的背景图片和图标等资源统一放进资源文件夹进行管理。(打包windows exe需要ico文件像素为256*256)


一、单Json文件方式

  1. 直接编辑项目文件夹下的package.json文件,添加
    "author": "",	//作者
     "description": ""	//描述
    
  2. 继续添加electron builder编译所需要的属性
    "build": {
        "appId": "com.leon.HelloWorld02",	//包名
        "copyright":"LEON",	//版权
        "productName":"HelloWorld02",	//项目名
        "dmg":{
          "background":"res/background.png",	//背景图片路径
          "window":{
    	//窗口左上角起始坐标
            "x":100,	
            "y":100,
    	//窗口大小
            "width":500,
            "height":300
          }
        },
        "win": {
            "icon": "res/icon.ico"	//图标路径
        }
      }
    貌似json文件使用注释会导致一部分编译报错,所以只在文章中写明注释,放到文件中最好将注释删掉。
  3. 完成后在项目文件夹中执行cmd命令:build --win --x64(因为我编译的是windows64位版本,electron builder可同时编译MAC和Linux版本,需要在package.json文件中写明相应的参数)
  4. 执行命令后即开始打包,无报错结束后及打包完成。(其中有提示告诉我可以升级electron builder到最新版本)
  5. 打包完成后,可以看到项目文件夹中自动生成了两个目录"dist"和"node_modules","node_modules"文件夹是空的,因为我是全局安装的electron,"dist"文件夹中包含一个名为"win-unpacked"的文件夹和一个与package.json文件中name属性相同名称的exe文件,这个文件即是最后打包生成的项目安装文件,"win-unpacked"文件夹打开后可看到一堆零散文件,但其中也包含exe的可执行文件,这是未打包的项目目录。
    二、多json文件方式
  从http://electron.rocks/electron-builder-explained/站点中获取到另一种多json文件的打包方式,虽然不知道与单文件打包有啥区别,但也是另一种文件结构,还是尝试一下。
先看看其目录结构
图中"ea-todo"为项目文件夹,"app"为项目内容文件夹,其中包含index.html、main.js、package.json等程序运行需要的文件, "build"为项目资源文件夹,"dist"与单json文件方式的"dist"文件夹功能相同,用于存放打包后生成的安装文件, package.json文件为开发和打包用的build参数。
  1. 先按其提供的目录结构构建程序。
  2. main.js无需改变。
  3. 修改app/package.json文件内容,网站中的解释是app/package.json文件是关于程序运行需要的内容,

    那就按照网站中的说法改
    {
        "name": "HelloWorld03",
        "description": "HelloWorld03",
        "version": "0.1.2",
        "author": "LEON",
        "main": "main.js"
    }
  4. 接下来修改项目文件夹中的package.json,网站中描述其内容为开发用的参数

    继续按网站描述内容修改
    {
        "devDependencies": {
        "electron-builder": "~13.7.0",	//可以通过build --version查看electron builder的版本号
        "electron-prebuilt": "^1.4.13"	//这玩意儿不知道是啥版本号,照之前的json文档中复制过来的
            
        },
        "build": {
            "appId": "com.leon.Hello,World03",
            "win": {
                "icon": "build/snow.ico"
            }
        },
    
        //下面一段应该是npm运行的代码
        "scripts": {
        "postinstall": "install-app-deps",
        "start": "electron ./app --enable-logging",		//启用日志
        "dev": "NODE_ENV='development' npm run start",	
        "dist": "build -w --x64"		//编译打包的版本
        }
    
    }


    
    
  5. 修改好后在项目文件夹中cmd运行
    cnpm run start
  6. 无错即打包完成

  7. 查看dist中内容与单json文件方式一样

  8. 双击setup即可安装并运行HelloWorld程序啦!



  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
要使 Electron 应用自动更新,可以使用 electron-updater 模块。这个模块是 Electron 提供的一个官方模块,可以用来实现自动更新功能。 以下是实现自动更新的步骤: 1. 在你的应用程序中添加 electron-updater 模块。 ```javascript npm install --save electron-updater ``` 2. 在主进程中设置自动更新的配置。 ```javascript const { app, autoUpdater } = require('electron'); const server = 'https://your-deployment-url.com'; // 更新服务器地址 const feed = `${server}/update/${process.platform}/${app.getVersion()}`; autoUpdater.setFeedURL(feed); autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName) => { // 收到更新下载完成的事件,需要用户确认安装 const dialogOpts = { type: 'info', buttons: ['安装', '稍后'], title: '应用有新的更新', message: process.platform === 'win32' ? releaseNotes : releaseName, detail: '安装后将重启应用程序' }; dialog.showMessageBox(dialogOpts).then((returnValue) => { if (returnValue.response === 0) { // 确认安装 setImmediate(() => autoUpdater.quitAndInstall()); } }); }); // 检查更新 app.on('ready', () => { autoUpdater.checkForUpdates(); }); ``` 3. 在打包应用时添加自动更新的配置。 在 package.json 文件中添加以下内容: ```json "build": { "publish": [ { "provider": "generic", "url": "https://your-deployment-url.com/update/" } ] } ``` 这里的 `url` 指向包含更新文件的服务器地址,`provider` 的值可以是 `generic`,也可以是其他选项(如 `github`、`s3` 等)。 4. 生成更新文件并上传到服务器。 最后,你需要在你的服务器上生成更新文件,并将其上传到指定的地址。更新文件可以是 `.dmg`、`.exe` 等格式的安装文件,也可以是 `.zip`、`.tar.gz` 等格式的压缩包。 上传更新文件时需要按照以下格式命名: - `appName-版本号-darwin-x64.dmg`(Mac OS X 版本) - `appName-版本号-win32-ia32.exe`(Windows 32 位版本) - `appName-版本号-win32-x64.exe`(Windows 64 位版本) 注意,这里的 `appName` 需要和你的应用程序名称一致,版本号需要和 `package.json` 文件中的版本号一致。 这样,当用户打开应用程序时,它将自动检查更新,并在更新可用时提示用户下载和安装更新。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值