一、安装配置环境

  • Electron(一种桌面应用程序运行时),Electron 把 Chromium 和 Node 合并到一个单独的运行时里面,很适合开发桌面 web 形式的应用程序,通过Node它提供了通常浏览器所不能提供的能力。
  • 首先需要在电脑进行安装配置Node环境,下载Nodejs,安装的过程像安装QQ一样简单
  • 通过npm全局安装electron

    npm install electron -g

    这样你就可以在电脑的任意位置进行你想要的操作了

  • 进入你要打包的H5网页的根目录

二、操作项目

  • 进入项目目录需要先在根目录进行创建两个文件,分别为package.json、main.js,这两个文件与你项目的index.html在同一个文件内
  • package.json内的文件内容

    {
    "name": "app-name",
    "version": "0.1.0",
    "main": "main.js"
    }
  • main.js内的内容

    const { app, BrowserWindow } = require('electron')
    const path = require('path')
    const url = require('url') // Keep a global reference of the window object, if you don't, the window will
    // be closed automatically when the JavaScript object is garbage collected.
    let win function createWindow() {
    // Create the browser window.
    win = new BrowserWindow({ width: 800, height: 600 }) // and load the index.html of the app.
    win.loadURL(
    url.format({
    pathname: path.join(__dirname, 'index.html'),
    protocol: 'file:',
    slashes: true,
    }),
    ) // Open the DevTools.
    // win.webContents.openDevTools() // Emitted when the window is closed.
    win.on('closed', () => {
    // Dereference the window object, usually you would store windows
    // in an array if your app supports multi windows, this is the time
    // when you should delete the corresponding element.
    win = null
    })
    } // This method will be called when Electron has finished
    // initialization and is ready to create browser windows.
    // Some APIs can only be used after this event occurs.
    app.on('ready', createWindow) // Quit when all windows are closed.
    app.on('window-all-closed', () => {
    // On macOS it is common for applications and their menu bar
    // to stay active until the user quits explicitly with Cmd + Q
    if (process.platform !== 'darwin') {
    app.quit()
    }
    }) app.on('activate', () => {
    // On macOS it's common to re-create a window in the app when the
    // dock icon is clicked and there are no other windows open.
    if (win === null) {
    createWindow()
    }
    }) // In this file you can include the rest of your app's specific main process
    // code. You can also put them in separate files and require them here.
  • 下载需要的打包插件工具 electron-packag

    npm install electron-package -g
  • 最后一步进行打包操作,这块比较代码比较长
    electron-package . (生成exe文件的名字) --win --out (打包完文件夹的名字) -arch=×64 --electronVersion (electron的版本号) --overwrite --ignore=node_modules即可完成打包
    例如:我的项目需要进行打包的操作为:

    electron-packager . miaotong --win --out presenterTool --arch=x64 --electronVersion 3.0.4 --overwrite --ignore=node_modules

    注意:--electronVersion的版本号必须和你第一步安装的electron版本一致,如果不确定版本可以输入命令进行查看
    cmd----->electron -v 终端会输出你当前全局安装electron的版本号,当然这个操作也是你验证electron有没有安装成功的方法

  • 至此就看自己的操作和运气了,上面的长串指令执行完成之后,在你的项目下会生成一个presenterTool文件夹,一级一级点击进去,会看到一个exe文件,点击试试吧

三、存在的问题

  • 目前打包出来的exe文件比较大,这部分还需要一个精简操作,等我找到靠谱的解决办法,再更新一下这个文章吧!

四、上图

项目展示:

Electron打包H5网页为桌面运行程序的更多相关文章

  1. nativefier - 快速把任意网页生成桌面应用程序

    使用前端技术开发桌面应用的技术已经相当成熟了,像早先的 NW.js,如今很火的 Electron 等,都可以轻松实现.今天给大家分享的 nativefier 就是基于 Electron 封装的,可以帮 ...

  2. vue-electron脚手架安装及说明 打包基于Vue的 桌面应用程序

    今天这篇文章是讲述一下 融合了vue-cli+electron的一种新的脚手架,省去许多繁琐配置,即vue-electron. 下面就说一下安装和使用,假设你的电脑已经安装node.js,并且已经全局 ...

  3. windows下用py2exe打包脚本为可双击运行程序

    文件夹结构: ├── readme.txt ├── settings.py #程序参数 ├── settings.pyc ├── setup.py    #安装文件 ├── spider.ico   ...

  4. electron原来这么简单----打包你的react、VUE桌面应用程序

    也许你不甘心只写网页,被人叫做"他会写网页",也许你有项目需求,必须写桌面应用,然而你只会前端,没关系.网上的教程很多,但是很少有能说的浅显易懂的,我尽力将electron打包应用 ...

  5. electron教程(四): 使用electron-builder或electron-packager将项目打包为可执行桌面程序(.exe)

    我的electron教程系列 electron教程(一): electron的安装和项目的创建 electron教程(二): http服务器, ws服务器, 子进程管理 electron教程(三): ...

  6. 将python项目打包为可运行的windows桌面exe程序

    ---恢复内容开始--- 步骤大概如下: 1.需要一个python文件/项目.也就是我们想要打包的文件 2.安装pyinstaller,目的是将我们的python文件生成为exe可执行程序. 3.使用 ...

  7. electron 打包成桌面运用

    最近在学习nodejs,得知Electron是通过将Chromium和Node.js合并到同一个运行时环境中,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一门技术.对于之前一直从 ...

  8. electron之Windows下使用 html js css 开发桌面应用程序

    1.atom/electron github: https://github.com/atom/electron 中文文档: https://github.com/atom/electron/tree ...

  9. 打包JavaFX11桌面应用程序

    打包JavaFX11桌面应用程序 这是JavaFX系列的第二弹,第一弹在这里 在第一弹中,我们使用的是OpenJDK8,但是OpenJDK8和Oracle Java JDK不一样,它没有内置JavaF ...

随机推荐

  1. Linux/UNIX 上安装 MySQL

    Linux/UNIX 上安装 MySQL Linux平台上推荐使用RPM包来安装Mysql,MySQL AB提供了以下RPM包的下载地址: MySQL - MySQL服务器.你需要该选项,除非你只想连 ...

  2. 关于Java集合框架总结

    Java集合专门用来存放多个对象,方便程序处理数据.Java提供了多种集合类,以便满足不同的应用需求,这些集合类分为两大系列:Collection和Map List List的通用方法 boolean ...

  3. 60)PHP,项目执行过程总结

  4. 吴裕雄--天生自然python学习笔记:爬取我国 1990 年到 2017年 GDP 数据并绘图显示

    绘制图形所需的数据源通常是不固定的,比如,有时我们会需要从网页抓取, 也可能需从文件或数据库中获取. 利用抓取网页数据技术,把我国 1990 年到 2016 年的 GDP 数据抓取出来 ,再利用 Ma ...

  5. C# 将多个DataTable添加到指定的DataSet中

    DataSet ds = new DataSet();//创建数据集 DataTable dt1=new DataTable(); //表1 DataTable dt2 = new DataTable ...

  6. centos 中文乱码解决办法

    缘由:本人在虚拟机中安装centos 5.3,起初安装时选择了english,后来使用的过程中发现打开网页,会出现中文乱码,无法正常显示.当然,本地文件中的中文更是无法显示. 若是将系统语言langu ...

  7. 在CentOS安装CMake (CentOS7 64位适用)

    在CentOS安装CMake 转自:http://www.cnblogs.com/mophee/archive/2013/03/19/2969456.html 一.环境描述 1.系统:CentOS 6 ...

  8. Integer 中的缓存类 IntegerCache

    我们先看一段代码: public class TestAutoBoxing { public static void main(String[] args) { //-128到127之间 Intege ...

  9. QT "debugger unknow type"问题解决办法

    windows上使用qt编译有两种,一种是vs的编译器,一种是MinGW的. 这种问题主要是发生在选择了MSVC2013编译器的版本,这个版本的qt需要再装一个调试器,而MinGW不用. 解决办法:下 ...

  10. Lua 学习 chapter30 编写c函数的技巧 - Jow的博客

    目录 数组操作 字符串操作 在c函数中保存状态 生活总需要一点仪式感,然后慢慢的像那个趋向完美的自己靠近. 数组操作 Lua中的数组就是以特殊的方式使用边.像lua_setttable and lua ...