首先需要安装node.js
,在cmd中输入node -v
检查是否安装成功
再新建项目文件夹,并在项目文件夹中打开cmd。
在cmd中输入npm init
初始化node.js项目,输入相关信息,其中entry point
应当填:main.js
随后会在项目文件夹下得到一个类似这样的package.json
文件:
1 2 3 4 5 6 7 8
| { "name": "my-electron-app", "version": "1.0.0", "description": "Hello World!", "main": "main.js", "author": "Jane Doe", "license": "MIT" }
|
将electron的下载地址改为国内镜像:
1
| npm config set electron_mirror "https://npm.taobao.org/mirrors/electron/"
|
下载electron:
1
| npm install --save-dev electron
|
将package.json
中scripts
字段改成如下:
1 2 3
| "scripts": { "start": "electron ." }
|
添加主进程文件:main.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| const { app, BrowserWindow } = require('electron') const path = require('node:path')
const createWindow = () => { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { preload: path.join(__dirname, 'preload.js') } })
mainWindow.loadFile('index.html')
}
app.whenReady().then(() => { createWindow()
app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) createWindow() }) })
app.on('window-all-closed', () => { if (process.platform !== 'darwin') app.quit() })
|
添加预加载脚本:preload.js
1 2 3 4 5 6 7 8 9 10 11 12
|
window.addEventListener('DOMContentLoaded', () => { const replaceText = (selector, text) => { const element = document.getElementById(selector) if (element) element.innerText = text }
for (const dependency of ['chrome', 'node', 'electron']) { replaceText(`${dependency}-version`, process.versions[dependency]) } })
|
界面:index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'"> <title>你好!</title> </head> <body> <h1>你好!</h1> 我们正在使用 Node.js <span id="node-version"></span>, Chromium <span id="chrome-version"></span>, 和 Electron <span id="electron-version"></span>. </body> </html>
|
输入npm start
启动项目。