使用Electron-packager打包已有的web项目,发布客户端

使用,electron,packager,打包,已有,web,项目,发布,客户端 · 浏览次数 : 576

小编点评

**1. 下载代码** ```bash git clone https://github.com/electron/electron-quick-start2.git ``` **2. 将 web 项目拷贝到 electron-quick-start 文件夹下** ```bash cd electron-quick-start cp -r ./ . ``` **3. 修改 main.js** ```javascript const path = require('path') // 添加 server 库 const httpServer = require('http-server'); // 创建窗口 function createWindow () { // 创建浏览器窗口 const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } }) // 关闭默认菜单 Menu.setApplicationMenu(null) // 加载 HTML 文件 mainWindow.loadFile('output/index.html') // 启动 HTTP 服务 httpServer.createServer({ root: "./output" }).listen(80) } // 创建窗口 createWindow() ``` **4. 安装打包工具** ```bash npm i electron-packager ``` **5. 添加打包命令** ```json { "scripts": { "start": "electron .", "packager": "electron-packager ./ APP --platform=win32 --arch=x64 --electron-version=19.0.6 --icon=logo.ico --overwrite" } } ``` **6. 运行打包命令** ```bash npm run packager ``` **注意:** * 将 `logo.ico` 替换为您的应用程序图标路径。 * 将 `APP` 替换为您的应用程序名称。 * 将 `19.0.6` 替换为您的 Electron 版本。

正文

1、先拉electron代码

  git clone https://github.com/electron/electron-quick-start

2、将web项目拷贝到electron-quick-start文件夹下

3、更改main.js 更换引用的html

const {app, BrowserWindow, Menu} = require('electron')
const path = require('path')
//因为项目使用server,添加了这个库,添加前,别忘了使用 npm i http-server 安装库。
const httpServer = require('http-server');



function createWindow () {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  })
  //注意 这里是我添加的,去掉electron自带菜单
  Menu.setApplicationMenu(null)
  mainWindow.loadFile('output/index.html')
  httpServer.createServer({root:"./output"}).listen(80);
}

4、安装打包工具,添加打包命令

npm i electron-packager
  "scripts": {
    "start": "electron .",
    "packager": "electron-packager ./ APP --platform=win32 --arch=x64 --electron-version=19.0.6 --icon=logo.ico --overwrite"
  }

命令解释:

electron-packager <location of project> <name of project> <platform> <architecture> <electron version> <optional options>
location of project:项目所在路径
name of project:打包的项目名字
platform:确定了你要构建哪个平台的应用(Windows、Mac 还是 Linux)
architecture:决定了使用 x86 还是 x64 还是两个架构都用
electron version:electron 的版本
optional options:可选选项

例子:

electron-packager ./  helloworld --platform=win32 --arch=x64 --out=./app --electron-version=3.0.7  

 

 

5、运行打包命令

npm run packager

可能遇到的坑:

1、打包超时 

# yarn
yarn config set electron_mirror https://npmmirror.com/mirrors/electron/

# npm
npm config set ELECTRON_MIRROR https://npmmirror.com/mirrors/electron/

2、图标报错

rcedit.exe failed with exit code 1. Reserved header is not 0 or image type is not icon for './src/assets/olami.ico'
解决方法:
下载生成ico工具:
https://icofx.ro/
下载之后,选择需要的图片(其他格式),后ctrl+s生成.ico图片

 

与使用Electron-packager打包已有的web项目,发布客户端相似的内容:

使用Electron-packager打包已有的web项目,发布客户端

1、先拉electron代码 git clone https://github.com/electron/electron-quick-start 2、将web项目拷贝到electron-quick-start文件夹下 3、更改main.js 更换引用的html const {app, Browse

使用Electron-builder将web项目封装客户端安装包 发布

背景:之前用electron-packager将web项目打包成客户端时,exe文件只能在当前文件夹下运行,如果发送给别人使用 极不方便。所以我们可以用electron-builder将web项目封装成安装包给别人使用。 1、配置npm代理 npm set electron_mirror=https

Electron Mac 打包报 Error: Exit code: ENOENT. spawn /usr/bin/python ENOENT 解决方法

Electron 项目使用vue-cli-electron-builder创建,原来我的 Mac 上编译都很正常 自从 Mac 升级到 mac OS ventura version 13.0.1 后打包报错,electron-builder 编译 dmg 安装包编译不出来 报如下错误 • build

Nodejs 命令行调用 exec 与 spawn 差异

Nodejs 命令行调用 exec 与 spawn 差异 比如在前端工程项目中 Nodejs 要调用命令行命令如: yarn electron:build exec 调用 yarn 命令,为了能使命令行能实时打印输出正在编译的命令 以异步形式调用 exec 使用 stdout.on 方式监听标准输出

使用Cloudflare Worker加速docker镜像

前言 开发者越来越难了,现在国内的docker镜像也都️了,没有镜像要使用docker太难了,代理又很慢 现在就只剩下自建镜像的办法了 GitHub上有开源项目可以快速搭建自己的镜像库,不过还是有点麻烦,还好Cloudflare暂时还活着‍ 本文记录一下使用 Cloudf

使用C#/.NET解析Wiki百科数据实现获取历史上的今天

创建一个webapi项目做测试使用。 创建新控制器,搭建一个基础框架,包括获取当天日期、wiki的请求地址等 创建一个Http请求帮助类以及方法,用于获取指定URL的信息 使用http请求访问指定url,先运行一下,看看返回的内容。内容如图右边所示,实际上是一个Json数据。我们主要解析 大事记 部

Pybind11和CMake构建python扩展模块环境搭建

使用pybind11的CMake模板来创建拓展环境搭建 从Github上下载cmake_example的模板,切换分支,并升级pybind11子模块到最新版本 拉取pybind11使用cmake构建工具的模板仓库 git clone --recursive https://github.com/mr

说说RabbitMQ延迟队列实现原理?

使用 RabbitMQ 和 RocketMQ 的人是幸运的,因为这两个 MQ 自身提供了延迟队列的实现,不像用 Kafka 的同学那么苦逼,还要自己实现延迟队列。当然,这都是题外话,今天咱们重点来聊聊 RabbitMQ 延迟队列的实现原理,以及 RabbitMQ 实现延迟队列的优缺点有哪些? 很多人

使用FModel提取游戏资产

目录前言FModel简介FModel安装FModel使用初次使用资产预览资产导出附录dumperDumper-7生成usmap文件向游戏中注入dll 前言 这篇文章仅记录我作为初学者使用FModel工具提取某款游戏模型的过程。 FModel简介 FModel是一个开源软件,可以用于查看和提取UE4-

使用GSAP制作动画视频

GSAP 3Blue1Brown给我留下了深刻印象。利用动画制作视频,内容简洁,演示清晰。前两天刚好碰到一件事,我就顺便学习了一下怎么用代码做动画。 以javascrip为例,有两个动画引擎,GSAP和Animajs。由于网速的原因,询问了GPT后,我选择了GSAP来制作我的第一个动画视频。 制作动