一、初始化并且安装完 Electron
- npm
npm install electron --save-dev
在初始化并且安装完 Electron 之后,您的 package.json 应该长下面这样。 文件夹中会出现一个 node_modules
文件夹,其中包含了 Electron 可执行文件;还有一个 package-lock.json
文件,指定了各个依赖的确切版本。
package.json
{
"name": "my-electron-app",
"version": "1.0.0",
"description": "Hello World!",
"main": "main.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "Jane Doe",
"license": "MIT",
"devDependencies": {
"electron": "23.1.3"
}
}
二、electron .
由于 Electron 的主进程是一个 Node.js 运行时,您可以使用 electron
命令执行任意的 Node.js 代码 (甚至可以将其作为 REPL 使用)。 要执行这个脚本,需要在 package.json 的 scripts
字段中添加一个 start
命令,内容为 electron .
。 这个命令会告诉 Electron 在当前目录下寻找主脚本,并以开发模式运行它。
package.json
{
"name": "my-electron-app",
"version": "1.0.0",
"description": "Hello World!",
"main": "main.js",
"scripts": {
"start": "electron .",
"test": "echo "Error: no test specified" && exit 1"
},
"author": "Jane Doe",
"license": "MIT",
"devDependencies": {
"electron": "23.1.3"
}
}
- npm
npm run start
三、添加以下文件在根目录
main.js
const {
app,
BrowserWindow,
ipcMain
} = require('electron')
const path = require('path')
const createWindow = () => {
const win = new BrowserWindow({
width: 1200,
height: 800,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
sandbox: false
},
icon: `${__dirname}/favicon.ico`,
center: true,
minHeight: 400,
minWidth: 600,
autoHideMenuBar: true,
})
win.loadURL("")//更换为网络域名
}
app.whenReady().then(() => {
ipcMain.handle('ping', () => 'pong')
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
- preload.js
const { contextBridge } = require('electron')
contextBridge.exposeInMainWorld('versions', {
node: () => process.versions.node,
chrome: () => process.versions.chrome,
electron: () => process.versions.electron
})
四、打包
导入你的项目到 Forge
将 Electron Forge 的 CLI 工具包安装到项目的 devDependencies
依赖中,然后使用现成的转化脚本将项目导入至 Electron Forge。
- npm
- Yarn
npm install --save-dev @electron-forge/cli
npx electron-forge import
转换脚本完成后,Forge 会将一些脚本添加到您的 package.json
文件中。
package.json
//...
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
},
//...
创建一个可分发版本
要创建可分发文件,请使用项目中的 make
脚本,该脚本最终运行了 electron-forge make
命令。
- npm
npm run make
该 make
命令包含两步:
- 它将首先运行
electron-forge package
,把您的应用程序 代码与 Electron 二进制包结合起来。 完成打包的代码将会被生成到一个特定的文件夹中。 - 然后它将使用这个文件夹为每个 maker 配置生成一个可分发文件。
在脚本运行后,您应该看到一个 out
文件夹,其中包括可分发文件与一个包含其源码的文件夹。
macOS output example
out/
├── out/make/zip/darwin/x64/my-electron-app-darwin-x64-1.0.0.zip
├── ...
└── out/my-electron-app-darwin-x64/my-electron-app.app/Contents/MacOS/my-electron-app
out/make
文件夹中的应用程序应该可以启动了! 现在,您已经创建了你的第一个 Electron 程序。
五、修改程序名和图标
在package.json文件中添加
"config": {
"forge": {
"packagerConfig": {
"name": "",//名字
"icon": "favicon.ico"
},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "dts_client"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
}