electron教程(一)创建项目

一、方式①

根据官网描述将electron/electron-quick-start项目克隆下来并启动

electron/electron-quick-start地址:

GitHub - electron/electron-quick-start: Clone to try a simple Electron app

复制代码
git clone https://github.com/electron/electron-quick-start.git

一、方式②

创建自己的项目

1.cmd打开运行窗口
复制代码
mkdir demo-electron-app && cd demo-electron-app
npm init
2.根据提示确认
3.修改package.json文件
javascript 复制代码
{
  "name": "demo-electron-app",
  "version": "1.0.0",
  "description": "my-app",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "ljx",
  "license": "ISC"
}
4.安装electron

npm容易报错,建议用cnpm

javascript 复制代码
npm install --save-dev electron

package.json文件中添加运行命令

javascript 复制代码
 "start": "nodemon --watch main.js --exec npm run build", // 如果没安装nodemon,这行不要
 "build": "electron ."

建议:在node环境中,安装nodemon,官网介绍,自行了解:诺德蒙 - NPM (npmjs.com)

安装步骤:

  1. win+r,输入cmd,打开运行窗口
  2. 输入npm install -g nodemon
  3. nodemon -v检查是否安装成功
5.创建index.html文件
html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
  <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
  <title>我的app</title>
</head>

<body>
  <h1>Hello World!</h1>
  我们正在使用 Node.js <span id="node-version"></span>,
  Chromium <span id="chrome-version"></span>,
  and Electron <span id="electron-version"></span>.
</body>

</html>
6.创建main.js文件

主进程文件

javascript 复制代码
const { app, BrowserWindow } = require('electron')
const path = require('node:path')

// 创建窗口
const createWindow = () => {
  // 设置窗口大小
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, 'preload.js')
    }
  })

  // 当前窗口显示的页面
  win.loadFile('index.html')
}

// app启动后创建窗口
app.whenReady().then(() => {
  createWindow()
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

// 关闭所有窗口时退出应用
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})
7.创建preload.js文件

预加载文件,通过 contextBridge 定义一个全局变量 versions 的示例如下:

javascript 复制代码
const { contextBridge } = require('electron/renderer')

contextBridge.exposeInMainWorld('versions', {
  node: () => process.versions.node,
  chrome: () => process.versions.chrome,
  electron: () => process.versions.electron
})
8.创建renderer.js文件

通过全局变量 versions 可以获取浏览器/node/electron版本信息,并将这些信息插入到html中

javascript 复制代码
const information = document.getElementById('info')
information.innerText = `本应用正在使用 Chrome (v${versions.chrome()}), Node.js (v${versions.node()}), 和 Electron (v${versions.electron()})`

在index.html文件中添加id=info的标签,并引入render.js文件

html 复制代码
<div id="info"></div>

<script src="./renderer.js"></script>
9.启动看效果
html 复制代码
npm run build
相关推荐
崔庆才丨静觅4 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60615 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅5 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅6 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅6 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment6 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅6 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊6 小时前
jwt介绍
前端
爱敲代码的小鱼7 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax