什么是 Electron?
Electron 是一个使用 JavaScript、HTML 和 CSS 构建桌面应用的框架。通过将 Chromium 和 Node.js 嵌入到其二进制文件中,Electron 允许您维护一个 JavaScript 代码库并创建可在 Windows、macOS 和 Linux 上运行的跨平台应用——无需原生开发经验。
入门
我们建议您从教程开始,它将指导您完成开发 Electron 应用并将其分发给用户的整个过程。示例和API 文档也是浏览和发现新事物的好地方。
使用 Electron Fiddle 运行示例
Electron Fiddle 是一个用 Electron 编写的沙盒应用,由 Electron 的维护者支持。我们强烈建议安装它作为一个学习工具,用于试验 Electron 的 API 或在开发过程中进行功能原型设计。
Fiddle 也与我们的文档很好地集成。在浏览我们的教程中的示例时,您会经常在代码块下方看到一个“在 Electron Fiddle 中打开”按钮。如果您安装了 Fiddle,此按钮将打开一个 fiddle.electronjs.org
链接,该链接会自动将示例加载到 Fiddle 中,无需复制粘贴。
- main.js
- preload.js
- index.html
const { app, BrowserWindow } = require('electron/main')
const path = require('node:path')
function createWindow () {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
win.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()
}
})
window.addEventListener('DOMContentLoaded', () => {
const replaceText = (selector, text) => {
const element = document.getElementById(selector)
if (element) element.innerText = text
}
for (const type of ['chrome', 'node', 'electron']) {
replaceText(`${type}-version`, process.versions[type])
}
})
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Hello World!</h1>
<p>
We are using Node.js <span id="node-version"></span>,
Chromium <span id="chrome-version"></span>,
and Electron <span id="electron-version"></span>.
</p>
</body>
</html>
文档中包含什么?
所有官方文档都可以从侧边栏获取。以下是不同的类别以及每个类别中可以期待的内容
- 教程:关于如何创建和发布您的第一个 Electron 应用的端到端指南。
- Electron 中的进程:关于 Electron 进程以及如何使用它们的深入参考。
- 最佳实践:在开发 Electron 应用时需要记住的重要清单。
- 示例:为您的 Electron 应用添加功能的快速参考。
- 开发:杂项开发指南。
- 分发:了解如何将您的应用分发给最终用户。
- 测试与调试:如何调试 JavaScript、编写测试以及用于创建高质量 Electron 应用的其他工具。
- 参考资料:有助于更好地了解 Electron 项目如何运作和组织的有用链接。
- 贡献:编译 Electron 和做出贡献可能会令人望而生畏。我们尝试在本节中使其更容易。
获取帮助
您是否在任何地方卡住了?这里有一些可以查找的地方的链接
- 如果您在开发应用时需要帮助,我们的社区 Discord 服务器是获取其他 Electron 应用开发者建议的好地方。
- 如果您怀疑自己遇到了
electron
包的 bug,请查看 GitHub issue tracker,看看是否有任何现有问题与您的问题匹配。如果没有,请随时填写我们的错误报告模板并提交一个新问题。