從零開始:打造你的第一個 Electron 應用程式

更新於 發佈於 閱讀時間約 10 分鐘
Electron 第一行程式碼

Electron 第一行程式碼

在現代軟體開發的世界中,跨平台桌面應用程式的需求日益增長。Electron 框架應運而生,它讓開發者能夠使用熟悉的 Web 技術(HTML、CSS 和 JavaScript)來建立原生桌面應用程式。今天,我將帶領你一步步從零開始,打造一個簡單的 Electron 應用程式。

為什麼選擇 Electron?

Electron 最初由 GitHub 開發維護,是當前最主流的跨平台桌面應用框架。根據最新調查報告,Electron 在桌面應用框架使用率排名第一。其代表性應用包含:VS Code(微軟開發工具)、Notion(生產力工具)、Spotify(音樂串流)、Slack(企業協作)、Discord(社群平台)...等。更多應用範例可以參考 Electron 官網:ShowCase

Electron Showcase

Electron Showcase

這些應用充分展現了 Electron 的跨平台能力與商業級應用潛力,其主要優勢包含:

  • 跨平台兼容性:一次編寫,可在 Windows、macOS 和 Linux 上運行
  • 使用熟悉的 Web 技術:無需學習新的程式語言
  • 豐富的 API:可以訪問系統資源和原生功能
  • 活躍的社群支持:大量的文檔和資源

環境準備

在開始之前,我們需要確保開發環境已經準備就緒。

安裝 Node.js

Electron 是基於 Node.js 的,所以首先需要安裝 Node.js。建議使用最新的 LTS(長期支援)版本,可以從 Node.js 官方網站 下載並安裝。

Node.js 官網

Node.js 官網

安裝完成後,打開終端機,輸入以下命令確認 Node.js 和 npm 已正確安裝:

node -v
npm -v

如果顯示版本號,就表示安裝成功了!

創建你的第一個 Electron 專案

步驟 1:建立專案資料夾

首先,讓我們創建一個新的資料夾來存放我們的專案:

mkdir electron-hello-world
cd electron-hello-world

步驟 2:初始化 npm 專案

在資料夾中運行以下命令來初始化一個 npm 專案,這將創建一個 package.json 檔案:

npm init -y

步驟 3:安裝 Electron

接下來,安裝 Electron 作為開發依賴:

npm install --save-dev electron

編寫應用程式

現在,讓我們開始編寫我們的應用程式程式碼。

步驟 1:創建主進程檔案

在專案資料夾中創建一個名為 main.js 的檔案,這是 Electron 應用程式的入口點:

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

// 創建瀏覽器視窗的函數
function createWindow() {
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true,
contextIsolation: false
}
});

// 載入 HTML 檔案
mainWindow.loadFile('index.html');

// 開發時可以打開開發者工具
// mainWindow.webContents.openDevTools();
}

// 當 Electron 完成初始化並準備創建瀏覽器視窗時調用此方法
app.whenReady().then(() => {
createWindow();

// 在 macOS 上,當點擊 dock 圖標且沒有其他視窗打開時,
// 通常會重新創建一個視窗
app.on('activate', function () {
if (BrowserWindow.getAllWindows().length === 0) createWindow();
});
});

// 當所有視窗關閉時退出應用(Windows & Linux)
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit();
});

步驟 2:創建 HTML 檔案

接下來,創建一個名為 index.html 的檔案,作為我們應用程式的使用者介面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<title>Hello Electron!</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
margin: 0;
padding: 20px;
text-align: center;
background-color: #f5f5f5;
color: #333;
}

.container {
max-width: 600px;
margin: 0 auto;
background-color: white;
padding: 30px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

h1 {
color: #2c3e50;
}

p {
line-height: 1.6;
}

.logo {
width: 150px;
margin-bottom: 20px;
}
</style>
</head>
<body>
<div class="container">
<h1>HKT線上教室</h1>
<p>恭喜你成功創建了第一個 Electron 應用程式!</p>
<p>這是一個使用 HTMLCSS 和 JavaScript 構建的跨平台桌面應用程式。</p>
</div>
</body>
</html>

步驟 3:更新 package.json

package.json 中添加一個啟動腳本,以便可以輕鬆運行應用:

"scripts": {
"start": "electron ."
},
"main": "main.js"

⚠️ 注意:預設是 "main": "index.js",要修改 "main": "main.js",務必將 main 指向正確的入口文件(建議使用 main.js)⚠️

運行你的應用程式

現在,讓我們運行我們的 Electron 應用程式!在終端中執行:

npm start

如果一切順利,你應該會看到一個顯示「Hello Electron!」的視窗。恭喜!你已經成功創建了你的第一個 Electron 應用程式。

Hello World

Hello World

打包你的應用程式

開發完成後,你可能想要將應用程式打包成可執行檔,以便分享給其他人。Electron 提供了多種打包工具,如 electron-builderelectron-packager 等。

以下是使用 electron-builder 的簡單示例:

  1. 安裝 electron-builder:
    npm install --save-dev electron-builder
  2. package.json 中添加打包配置:
    "build": {
    "appId": "com.yourname.electron-hello-world",
    "productName": "Hello Electron",
    "directories": {
    "output": "dist"
    },
    "win": {
    "target": "nsis"
    },
    "mac": {
    "target": "dmg"
    },
    "linux": {
    "target": "AppImage"
    }
    },
    "scripts": {
    "start": "electron .",
    "build": "electron-builder"
    }
  3. 運行打包命令:
    npm run build

總結與下一步

通過這篇教學,你已經學會了如何從零開始創建一個簡單的 Electron 應用程式。這只是 Electron 開發的起點,接下來你可以:

  • 學習如何使用 IPC(進程間通信)在主進程和渲染進程之間通信
  • 探索 Electron 的原生 API,如系統通知、檔案對話框等
  • 整合前端框架如 React、Vue 或 Angular
  • 實現自動更新功能
  • 優化應用程式的性能和安全性

Electron 的世界充滿了可能性,希望這篇教學能夠激發你的創造力,開始你的 Electron 開發之旅!

留言
avatar-img
留言分享你的想法!
avatar-img
HKT實驗室
24會員
261內容數
哈囉!歡迎光臨我的沙龍!我是 KT,一位對應用程式開發充滿熱情的開發者。在這個專屬空間,我將與您分享我在應用開發領域的深入學習心得和豐富的實戰經驗。如果您對應用程式開發技術同樣充滿好奇,渴望不斷探索新知,歡迎成為我們的會員,一起在應用程式開發的旅途上,探索更深層次的技術世界,享受學習的樂趣。
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
成功加入Anytype之後就可以開始探索這一個開源的筆記軟體了^_^ 開始Anytype之前..... 1.刪除所有初始物件 2.思考自己的使用需求 3.不著急學會所有功能
Thumbnail
成功加入Anytype之後就可以開始探索這一個開源的筆記軟體了^_^ 開始Anytype之前..... 1.刪除所有初始物件 2.思考自己的使用需求 3.不著急學會所有功能
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
Thumbnail
如果你曾經撰寫過網頁,那你一定接觸過 JavaScript 無論是在 NodeJs 或是瀏覽器中運行。 但你有沒有想過,我們寫下的 JS 程式碼,這些看似單純的英文和符號,是如何被轉化為機器能夠理解和執行的程式呢? 今天,讓我們一起深入了解其中的核心主角 ——Google 開發的開源 Java
Thumbnail
如果你曾經撰寫過網頁,那你一定接觸過 JavaScript 無論是在 NodeJs 或是瀏覽器中運行。 但你有沒有想過,我們寫下的 JS 程式碼,這些看似單純的英文和符號,是如何被轉化為機器能夠理解和執行的程式呢? 今天,讓我們一起深入了解其中的核心主角 ——Google 開發的開源 Java
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
本文章介紹了建立網頁的整個流程,包括設置 Templates, Views, Urls 等步驟。透過這些步驟,大家便能創建一個新的網頁,並成功測試。
Thumbnail
本文章介紹了建立網頁的整個流程,包括設置 Templates, Views, Urls 等步驟。透過這些步驟,大家便能創建一個新的網頁,並成功測試。
Thumbnail
前言 現在的前端需求已經越來越高,要考慮HTML及CSS的切版美觀程度,以及React以及Flutter所提出的元件(Componet、widget)觀念,也就是將元件模組化,使元件可以更動態的被程式運行,而不用靜態的客製化每一個介面。開發一個好的元件可以提升整體的開發速度,讓任何使用元件的開發者
Thumbnail
前言 現在的前端需求已經越來越高,要考慮HTML及CSS的切版美觀程度,以及React以及Flutter所提出的元件(Componet、widget)觀念,也就是將元件模組化,使元件可以更動態的被程式運行,而不用靜態的客製化每一個介面。開發一個好的元件可以提升整體的開發速度,讓任何使用元件的開發者
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News