发布于 2025-12-10 1 阅读
0

用不到 15 行代码将你的网站变成跨平台桌面应用 Electron 是什么?为什么要使用 Electron?入门指南 构建应用 Electron 的缺点 使用 Electron 的项目 Smartsapp 感谢阅读

用不到 15 行代码将您的网站转变为跨平台桌面应用程序

什么是Electron

为什么要使用Electron

入门

构建应用程序

使用的缺点electron

项目使用Electron

Smartsapp

感谢阅读

什么是Electron

Electron是由GitHub开发和维护的开源软件框架。它允许使用 Web 技术开发桌面 GUI 应用程序:它结合了渲染引擎和运行时。ChromiumNode.js

为什么要使用Electron

现在您可能想知道为什么要使用electron...嗯,有几个相当令人信服的理由:

  • Electron是一个由GitHub和活跃的贡献者社区维护的开源项目,可以快速修复错误并添加新功能。
  • 它是跨平台的,兼容MacWindowsLinux,Electron 应用程序可以在三个平台上构建和运行。
  • 您可以使用各种Web 技术制作应用程序,从原始的HTMLCSS&到诸如和之JS类的框架ReactAngularVue
  • 一些最大的桌面应用程序都是使用VS CodeFacebook MessengerTwitchMicrosoft Teamselectron制作的

入门

好了,废话少说,现在开始将您的Web 应用转换为桌面应用。首先,electron使用以下命令进行安装。

npm i -g electron
Enter fullscreen mode Exit fullscreen mode

安装完成后,打开一个新文件夹并创建index.js文件。

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

const createWindow = () => {
    const win = new BrowserWindow({ width: 800, height: 600, })
    win.loadFile(path.join(__dirname, 'index.html')) // Assuming the file is located in the same folder
}

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

app.on('window-all-closed', () => process.platform !== 'darwin' && app.quit())
Enter fullscreen mode Exit fullscreen mode

瞧!你的应用仅用 14 行代码就转换成了桌面应用。你可以使用以下命令运行该应用

electron .
Enter fullscreen mode Exit fullscreen mode

附言:请确保你已index.html在指定位置,否则应用会崩溃。出于测试目的,你可以使用一行代码

<h1>Cross Platform App</h1>
Enter fullscreen mode Exit fullscreen mode

但是开发任何这样的应用程序都不是最佳选择,最好使用npm或之类的工具创建一个合适的项目,yarn以便更好地进行包管理。

构建应用程序

首先使用

npm init
Enter fullscreen mode Exit fullscreen mode

并添加electron开发依赖项

npm i -D electron
Enter fullscreen mode Exit fullscreen mode

让我们创建index.js文件

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

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
  })

  win.loadFile(path.join(__dirname, 'gui', 'index.html')) // Assuming the GUI files are in a folder called gui
}

app.whenReady().then(() => {
  createWindow()

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

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

是的,我确实压缩了文件一点以使其适合 14 行😅。

您应该将文件组织在单独的文件夹中(如上例中的Web 应用程序文件的GUI )。

使用的缺点electron

Electron也有一些缺点

  • 比使用本机 GUI 组件构建的应用程序慢(尽管在大多数情况下并不明显)。
  • 包大小非常大(与原生应用相比

项目使用Electron

Smartsapp

网络应用程序:https://smartsapp-ba40f.firebaseapp.com

GitHub 徽标 ruppysuppy / SmartsApp

💬📱 端到端加密的跨平台通讯应用程序。

Smartsapp

具有端到端加密(E2EE)的完全跨平台的通讯应用程序。

演示

注意:演示中展示的功能并不详尽。演示中仅展示核心功能。

支持的平台

  1. 桌面: Windows、Linux、MacOS
  2. 移动设备: Android、iOS
  3. 网站:任何带有浏览器的设备

后端设置

应用程序的后端由 处理Firebase

基本设置

  1. 转到 firebase 控制台并创建一个名为的新项目Smartsapp
  2. 使能够Google Analylitics

应用程序设置

  1. App从概览页面创建项目
  2. 将配置复制并粘贴到所需位置(在相应应用程序的自述文件中给出)

授权设置

  1. 前往项目Authentication部分
  2. 选择Sign-in method标签
  3. 启用Email/PasswordGoogle登录

Firestore 设置

  1. 前往项目Firestore部分
  2. 为项目创建 Firestore 供应(选择距离您所在位置最近的服务器)
  3. 前往Rules

感谢阅读

需要一位顶级软件开发自由职业者来解决你的开发难题吗?在Upwork上联系我

想看看我正在做什么吗?查看我的个人网站GitHub

想联系我吗?请在LinkedIn上联系我

关注我的博客,每两周Medium上获取最新资讯

常问问题

这些是我经常收到的一些问题。希望这个常见问题解答部分能解决您的问题。

  1. 我是初学者,该如何学习前端 Web 开发?
    可以参考以下文章:

    1. 前端流行语
    2. 前端开发路线图
    3. 前端项目构想
    4. 从初学者过渡到中级前端开发人员
  2. 你能指导我吗?

    抱歉,我工作已经很忙了,没时间指导任何人。

文章来源:https://dev.to/ruppysuppy/turn-your-website-into-a-cross-platform-desktop-app-with-less-than-15-lines-of-code-with-electron-44m3