HTML、JS、CSS作为依托浏览器运行的脚本语言,常被用来作为后端程序的可视化页面。HTML具有语义简单、能够独立运行、运行方便等优点。缺点是依托于电脑配置,继而影响浏览器运行效率;本地文件的访问存在安全限制,继而文件过大会导致运行错误。但单个文件不超过约600M(可多个)可以运行(亲测)。

        简单的页面可视化方便无代码基础的群众用来资源搜索,如新闻、商品、资源(影音、图片等);但随着AI技术的强大,HTML程序用于轻量数据的在线可视化分析,相较于Python可视化更为简单、易修改,但性能不如Python。这里使用AI生成的代码用于可视化数据(曲线图),以下为我的项目文件结构,主文件为POST.html(可在浏览器运行)。

一、搭建文件目录

your-app/
├── POST.html       # 你的页面(支持内嵌CSS、本地JS、图片)
├── main.js          # Electron 主进程(固定不动)
├── package.json     # 配置文件
└── /assets          # 放你的 CSS、JS、图片等
    ├── style.css
    └── script.js

    1. package.json(项目配置)

{
  "name": "html-to-exe",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "pack": "electron-builder --win",
    "build": "electron-builder --win --dir"
  },
  "devDependencies": {
    "electron": "^28.0.0",
    "electron-builder": "^24.9.0"
  },
  "build": {
    "appId": "com.html.exe",
    "win": {
      "target": "nsis",
      "icon": "icon.ico"
    },
    "files": [
      "**/*"
    ]
  }
}

2. main.js(Electron 入口)

const { app, BrowserWindow, shell } = require('electron')
const path = require('path')

let win

function createWindow() {
  win = new BrowserWindow({
    width: 1000,
    height: 700,
    webPreferences: {
      nodeIntegration: false,
      contextIsolation: true,
      enableRemoteModule: false
    }
  })

  // 加载本地 HTML
  win.loadFile('index.html')

  // 所有外链自动用系统浏览器打开(安全)
  win.webContents.setWindowOpenHandler(({ url }) => {
    shell.openExternal(url)
    return { action: 'deny' }
  })
}

app.whenReady().then(createWindow)

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) createWindow()
})

3. POST.html(你的页面,支持本地 CSS/JS)

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>我的HTML转EXE</title>
  <!-- 引入外部CSS ✅ 支持 -->
  <link rel="stylesheet" href="./assets/style.css">
</head>
<body>
  <h1>Electron 打包 HTML 成功!</h1>
  <!-- 引入外部JS ✅ 支持 -->
  <script src="./assets/script.js"></script>
</body>
</html>

二、下载打包资源

        HTML的打包分为使用工具打包和本地打包,无疑我们防止走弯路,直接选择本地打包(需联网下载打包资源)。本目录下输入cmd进入计算机的指令页面。

        首先下载npm(先别运行)。

# 1. 安装依赖
npm install

# 2. 测试运行(看是否正常显示)
npm start

# 3. 打包成 EXE(最终文件在 dist 文件夹)
npm run pack

        正常来讲这里就结束了。但如果你不慎运行错误,那是因为npm作为国外资源直接下载会出错,因此需重新安装npm。

        先删掉报错的 node_modules文件夹,然后执行这4 条命令:

# 1. 清空 npm 缓存(必须)
npm cache clean -f

# 2. 使用国内镜像安装(100%成功)
npm install --registry=https://registry.npmmirror.com --electron-mirror=https://npmmirror.com/mirrors/electron/

# 3. 测试运行(看是否正常显示)
npm start

# 4. 打包成 EXE(最终文件在 dist 文件夹)
npm run pack

        正常来讲这里可能结束了,但如果你不慎又运行错误,只能再建立一个文本并命名为.npmrc(后缀为npmrc,名为空),内容如下(相当于多了几个下载源):

registry=https://registry.npmmirror.com
electron_mirror=https://npmmirror.com/mirrors/electron/
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/

        然后再执行即可成功:

# 1. 安装依赖
npm install

# 2. 测试运行(看是否正常显示)
npm start

# 3. 打包成 EXE(最终文件在 dist 文件夹)
npm run pack

        最后你可在dist文件夹下看到你要的EXE:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐