不用vue,只用html,即可簡單實現electron項目

為你提供一個?最簡單的 Electron 項目模板,包含完整的代碼、配置和打包說明。即使你是小白,也能快速上手。

1. 項目結構

/your-project├── main.js          # Electron 主進程文件├── preload.js       # 安全通信腳本(可選)├── index.html       # 前端頁面├── package.json     # 項目配置└── build/           # 打包配置目錄(后文會生成)

2. 初始化項目

在空文件夾中打開終端,執行:

npm init -y
npm install --save-dev electron electron-builder

3. 核心文件代碼

(1)?main.js?- 主進程
const { app, BrowserWindow, Menu, } = require('electron')
const path = require('path')let mainWindowfunction createWindow() {// 創建瀏覽器窗口mainWindow = new BrowserWindow({width: 2500,height: 1000,icon: path.join(__dirname, 'images/favicon.png'),webPreferences: {preload: path.join(__dirname, 'preload.js') // 安全通信腳本}})// 隱藏菜單欄Menu.setApplicationMenu(null);// 加載本地文件(生產環境)mainWindow.loadFile('index.html')// mainWindow.webContents.openDevTools()}// Electron 初始化完成時觸發
app.whenReady().then(createWindow)// 關閉所有窗口時退出應用(macOS 除外)
app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()
})// macOS 點擊 Dock 圖標重新打開窗口
app.on('activate', () => {if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
(2)?preload.js?- 安全通信腳本
// 這里可以暴露安全的 API 給渲染進程
window.electronAPI = {doThing: () => require('electron').ipcRenderer.send('do-a-thing')
}
(3)?index.html?- 前端頁面
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>我的 Electron 應用</title>
</head>
<body><h1>Hello Electron!</h1><button id="btn">點擊測試</button><script>document.getElementById('btn').addEventListener('click', () => {// 調用預加載腳本暴露的方法window.electronAPI?.doThing()})</script>
</body>
</html>

4. 配置?package.json

{"name": "my-electron-app","version": "1.0.0","main": "main.js","scripts": {"start": "electron .","pack": "electron-builder --dir","dist": "electron-builder"},"build": {"appId": "com.example.myapp","productName": "我的應用","directories": {"output": "dist"  // 打包輸出目錄},"win": {"target": "nsis", // Windows 安裝包"icon": "build/icon.ico"},"mac": {"target": "dmg","icon": "build/icon.png"},"linux": {"target": "AppImage"}},"devDependencies": {"electron": "^28.0.0","electron-builder": "^24.0.0"}
}

5. 添加應用圖標

在?build/?目錄下放置:

  • icon.ico(Windows)

  • icon.png(macOS/Linux)

推薦尺寸:至少 256x256 像素

6. 運行與打包命令

測試打包(不生成安裝包)

npm run pack

生成安裝包
npm run dist

打包結果會輸出到?dist/?目錄:

  • Windows:?.exe?安裝包

  • macOS:?.dmg?鏡像

  • Linux:?.AppImage


7. 注意事項

  1. 安全建議

    • 生產環境不要禁用?contextIsolation

    • 所有 Node.js API 調用通過?preload.js?中轉

  2. 調試技巧

    • 主進程調試:在 VSCode 中添加調試配置

    • 渲染進程調試:右鍵頁面選擇 "Inspect Element"

  3. 跨平臺問題

    • Windows 打包需在 Windows 系統進行

    • macOS 打包需要證書簽名

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86163.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86163.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86163.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++11原子操作:從入門到精通

文章目錄 一、什么是原子操作&#xff1f;二、為什么需要原子操作&#xff1f;三、C11中的<atomic>頭文件四、基本使用1. 聲明原子變量2. 基本原子操作 五、內存順序&#xff08;Memory Order&#xff09;示例&#xff1a;使用內存順序實現自旋鎖 六、原子類型模板七、實…

深入解析Flink Local模式啟動流程源碼:揭開作業初始化的神秘面紗

在Flink的數據處理體系中&#xff0c;Local模式憑借無需依賴分布式集群資源的特性&#xff0c;成為開發測試階段快速驗證作業邏輯的利器。其啟動流程的源碼里&#xff0c;藏著從作業提交到任務執行的完整脈絡。接下來&#xff0c;我們將深入關鍵代碼段&#xff0c;逐行剖析Flin…

二刷 蒼穹外賣 day06

HttpClient 用來提供高效的、最新的、功能豐富的支持HTTP協議的客戶端編程工具包 作用&#xff1a; 發送HTTP請求 接受響應數據 應用場景&#xff1a; 當我們在使用掃描支付、查看地圖、獲取驗證碼、查看天氣等功能時 其實&#xff0c;應用程序本身并未實現這些功能&#xff…

React第六十三節Router中BrowserRouter的用途及注意事項

前言 BrowserRouter 是 React Router 庫的核心組件&#xff0c;用于實現單頁面應用&#xff08;SPA&#xff09;的客戶端路由。它利用 HTML5 History API 管理 URL&#xff0c;實現頁面無刷新跳轉。下面詳細解釋其用途、使用方法和代碼示例&#xff1a; 一、BrowserRouter 核…

《Self-Adapting Language Models》(SEAL)代碼閱讀筆記

代碼&#xff1a;https://github.com/Continual-Intelligence 腳本命令用法&#xff1a;knowledge-incorporation/README.md 生成self-edit數據 腳本&#xff1a;sbatch knowledge-incorporation/scripts/make_squad_data.sh vllm serve啟動Qwen2.5-7B模型的服務。 執行self-e…

GelSight Mini視觸覺傳感器開發資源升級:觸覺3D點云+ROS2助力機器人科研與醫療等應用

近日&#xff0c;GelSight宣布對其GelSight Mini視觸覺傳感器的GitHub支持頁面進行重大更新&#xff0c;圍繞3D點云重建、ROS2 集成及開發者支持體系推出三大核心升級&#xff0c;助力機器人觸覺感知、工業檢測及科研場景落地。 GelSight Mini視觸覺傳感器重磅發布&#xff01;…

6、做中學 | 三年級下期 Golang值類型相互轉換

本次為操作文章&#xff0c;大部分都在討論類型之間如何轉換&#xff0c;使用的是內置方法進行調用執行&#xff0c;詳細使用請移步至&#xff1a; go的API使用文檔地址 https://studygolang.com/pkgdoc 一、數值類型相互轉換 go中數值轉換需要顯示轉換&#xff0c;不能隱式自…

019 高校心理教育輔導系統技術解析:構建心理健康守護平臺

高校心理教育輔導系統技術解析&#xff1a;構建心理健康守護平臺 在關注大學生心理健康成為教育重點的當下&#xff0c;高校心理教育輔導系統借助數字化技術整合多種功能模塊&#xff0c;面向管理員、學生、教師三類角色&#xff0c;實現心理教育輔導工作的高效化與精準化。本…

【ArcGIS】土地資源單項評價

【ArcGIS】土地資源單項評價 一、土地資源單項評價1、評價思路 二、操作步驟1、處理環境設置2、地形坡度評價3、高程評價4、坡度高程疊加評價5、地形起伏度6、土地資源綜合評價 一、土地資源單項評價 1、評價思路 &#xff08;1&#xff09;利用全域DEM計算地形坡度&#xff…

Prioritized Generative Replay

ICLR 2025 Oral code 具有樣本效率的 online reinforcement learning (RL) 通常使用 replay buffer 存儲經驗&#xff0c;以便在更新價值函數時重復使用。然而&#xff0c;uniform replay 效率低下&#xff0c;因為某些類型的 transition 可能與學習更相關。 雖然對更有用的樣本…

Linux -- 線程、鎖

1、 Linux線程概念 1.1、什么是線程 在一個程序里的一個執行路線就叫做線程&#xff08;thread&#xff09;更準確的定義是&#xff1a;線程是“一個進程內部的控制序列”一切進程至少都有一個執行線程線程在進程內部運行&#xff0c;本質是在進程地址空間內運行在Linux系統中…

海外服務器的定義和作用都有哪些?

海外服務器可以說是一個統稱&#xff0c;其中包含了全球各地除了中國大陸以外其他國家的服務器&#xff0c;在如今的數字化時代中&#xff0c;海外服務器的應用已經成為跨國企業業務拓展、科研與學術交流等多個領域中不可或缺的一部分&#xff0c;能夠為各個行業提供更加穩定且…

數據結構之優先級隊列

系列文章目錄 數據結構之ArrayList_arraylist o(1) o(n)-CSDN博客 數據結構之LinkedList-CSDN博客 數據結構之棧-CSDN博客 數據結構之隊列-CSDN博客 數據結構之二叉樹-CSDN博客 目錄 系列文章目錄 前言 一、優先級隊列和堆 二、堆的模擬實現 1. 堆的創建 2. 計算建堆…

【版本控制教程】如何使用Unreal Engine 5 + UE源代碼控制(Perforce P4)

本文來源perforce.com&#xff0c;由Perforce中國授權合作伙伴——龍智翻譯整理&#xff0c;旨在為國內用戶提供一份實用、易懂的Unreal Engine 5Perforce P4的中文使用指南。希望能為UE開發者、設計師和美術小伙伴們的版本控制實踐提供有力支持~ Unreal Engine 5 是一款尖端的…

opensingleComDialog方法解析優化

下面是對 opensingleComDialog 方法的詳細解析&#xff0c;并給出優化建議和優化后的代碼。 方法解析 作用 opensingleComDialog(index) 方法用于在輸入框失去焦點時&#xff08;blur 事件&#xff09;自動根據輸入內容進行唯一性查詢&#xff0c;如果查到唯一結果則自動填充…

css 實現1個像素在不同分辨率屏幕上畫網格線

實現網格線繪制&#xff0c;要考慮畫布style尺寸和畫布像素大小的縮放關系 單像素繪制主要出現的問題是會模糊&#xff0c;從像素角度看就是出現繪制兩個像素&#xff0c;實際就是要做偏移 核心就是&#xff1a;按物理像素繪制&#xff0c;首先要對齊物理像素&#xff0c;計算…

深度圖聚類DGC—Paper Notes

目錄 Unsupervised Deep Embedding for Clustering Analysis (DEC 2016)Attributed Graph Clustering: A Deep Attentional Embedding Approach (DAEGC 2019)Structural Deep Clustering Network (SDCN 2020)Contrastive Multi-View Representation Learning on Graphs (MVG…

獲取YARN application 應用列表的幾種方法

目錄 1. 使用YARN命令行工具 2. 通過REST API獲取 YARN 提供了獲取YARN集群上運行的應用列表,以下是幾種常見方法: 1. 使用YARN命令行工具 最直接的方式是使用YARN提供的命令行工具: yarn application -list 上述命令會顯示所有正在運行的應用。 如果要查看所有應用(…

前端如何下載 ‘Content-Type‘: ‘application/octet-stream‘ 的文件

前言 在前端開發中&#xff0c;經常會遇到需要從后端接口下載文件的需求。當后端返回的響應頭中 Content-Type 為 application/octet-stream 時&#xff0c;表示這是一個二進制流文件&#xff0c;瀏覽器無法直接展示&#xff0c;需要前端處理后下載到本地。本文將詳細介紹前端…

咨詢顧問進階——顧問公司戰略咨詢分析模板【附全文閱讀】

該戰略咨詢分析模板圍繞企業戰略分析展開&#xff0c;先從總體思考戰略分析的目的與方法&#xff0c;接著探討企業及戰略定義、戰略地位等。外部環境分析通過 PEST、五種競爭力等模型&#xff0c;分析環境、行業、市場等情況以發現機會與威脅&#xff1b;內部環境分析從資源、核…