Electron-桌面 App-螢幕遮罩(Screen mask) - 6

更新 發佈閱讀 9 分鐘

前言
公司最近配的一台螢幕,沒辦法調整亮度,亮得要命,眼睛要瞎掉了
所以只好自立自強搞一個螢幕遮罩

上一章節回顧
第一章:顯示 Electron 視窗,可調整透明度
第二章:參數維護移植到 main/js
第三章:增加調整顏色功能
第四章:隱藏 electron 應用程式視窗,讓他看起來就是一個遮罩
第五章:桌面下方工具列沒有遮到、桌面下方工具列要不要顯示 electron ?、隱藏到工具列右下角的系統匣(System Tray)中

本章節內容
打包成.exe


第一步:安裝打包工具

在終端機執行以下指令,將 electron-builder 加入開發依賴:

npm install electron-builder --save-dev

第二步:配置 package.json

{
"name": "screen-mask",
"version": "1.0.0",
"main": "src/main.js",
"scripts": {
"build:css": "npx @tailwindcss/cli -i ./src/input.css -o ./src/output.css --minify",
"watch:css": "npx @tailwindcss/cli -i ./src/input.css -o ./dist/output.css --watch",
"start": "npm run build:css && electron .",
"dev": "npm run build:css && (npx @tailwindcss/cli -i ./src/input.css -o ./dist/output.css --watch & electron .)",
"pack": "npm run build:css && electron-builder --win --x64"
},
"build": {
"appId": "com.my.app",
"productName": "螢幕遮罩工具",
"directories": {
"output": "dist"
},
"win": {
"target": ["nsis", "portable"],
"icon": "src/assets/icon.ico"
},
"files": ["src/**/*", "package.json", "!src/input.css"]
}
}

第三步:生成 icon.ico

  1. 可以隨便找一張圖,上網找圖片轉.ico 的網站
    生成 256 x 256 的 .ico 檔
  2. 放至 src/asset 底下
    前一章節的 icon 圖檔也可以放置這個路徑下但是 main.js 要記得改一下
    // src/main.js
    const icon = nativeImage.createFromPath(
    path.join(__dirname, 'assets/icon.png') // 👈 這裡要改
    )

第四步:打包

⚠️ 以 系統管理員身分 於專案根目錄執行指令

npm run pack
  • 如果不是以 系統管理員身分 執行,很可能打包失敗
    errorOut=ERROR: Cannot create symbolic link : �Τ��ݨS���o���S���v���C
    這個錯誤訊息中的亂碼,翻譯過來其實是:「ERROR: Cannot create symbolic link : 用戶不具備適當的權限。」
    這是因為 electron-builder 在打包過程中需要建立「符號連結」(Symbolic Links),而 Windows 系統基於安全性考量,預設不允許一般權限的開發者建立連結。

✅ 完成後會於根目錄下生成 dist 資料夾:

dist/
├── win-unpacked/ # 免安裝的解壓縮版本(包含所有執行檔與資源)
│ └── ...
├── 螢幕遮罩工具 1.0.0.exe # 免安裝的可執行檔 (Portable)
├── 螢幕遮罩工具 Setup 1.0.0.exe # 軟體安裝程式 (Installer)
├── 螢幕遮罩工具 Setup 1.0.0.exe.blockmap # 用於自動更新的區塊映射檔
├── latest.yml # 自動更新設定檔(記錄版本與雜湊值)
├── builder-debug.yml # 封裝過程的除錯日誌
├── builder-effective-config.yaml # 最終生效的封裝設定檔
└── output.css # 編譯後的樣式檔案(通常是前端資源)
  • win-unpacked/: 這是軟體的「本體」。如果你想快速測試功能而不進行安裝,直接進去執行裡面的 .exe 即可。
  • Setup 1.0.0.exe: 這是你要分發給使用者的安裝檔,它會負責將軟體安裝到使用者的 AppData 目錄並建立捷徑。
  • latest.yml: 這非常重要。如果你有設定 Auto-update,Electron Updater 會比對這個檔案來決定是否需要下載新版本。
  • blockmap: 這是為了節省頻寬用的。當使用者更新軟體時,它能讓程式只下載有變動的部分,而不是重新下載整個安裝包。

📚 額外筆記

"nsis", "portable" 差異

package.json 配置

{
...
"build": {
...
"win": {
"target": ["nsis", "portable"],
"icon": "src/assets/icon.ico"
},
...
}
...
}

這兩個選項決定了你打包出來的 .exe 會以什麼 形式 交給使用者。
簡單來說,一個是「需要安裝的」,一個是「點開即用的」。

1. nsis (安裝程式)
這是 Windows 上最常見的安裝方式(類似你下載 Chrome 或 LINE 後執行的安裝檔)。

  • 行為: 使用者執行 .exe 後,會跳出安裝畫面(授權協議、選擇安裝路徑、進度條),最後將程式安裝到電腦的 C:\Program Files 或 AppData 中。
  • 優點:
    會在開始功能表和桌面建立快捷方式。會在「控制台」的「新增或移除程式」中出現,方便使用者解除安裝。適合正式發佈、長期使用的應用程式。

2. portable (免安裝便攜版)
這會產生一個單一的 .exe 檔案,使用者不需要安裝。

  • 行為: 點兩下直接開啟程式。它不會把檔案複製到系統資料夾,也不會建立快捷方式。
  • 優點:
    方便分享: 可以直接丟在隨身碟或是雲端,點開就能用。
    • 乾淨: 不會在系統留下安裝紀錄,刪除該檔案就等於移除程式。
    • 缺點: 每次啟動可能會稍微慢一點點(因為它需要先解壓到暫存空間),且使用者不容易在開始功能表找到它。

進階小知識:NSIS 設定
如果你想讓安裝過程更專業,可以在 build 裡面加入 nsis 的細節設定:

"nsis": {
"oneClick": false, // 取消一鍵安裝,讓使用者可以選路徑
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": true,
"installerIcon": "build/icon.ico",
"uninstallerIcon": "build/icon.ico"
}
留言
avatar-img
李昀瑾的沙龍
0會員
39內容數
李昀瑾的沙龍的其他內容
2026/04/23
前言 公司最近配的一台螢幕,沒辦法調整亮度,亮得要命,眼睛要瞎掉了 所以只好自立自強搞一個螢幕遮罩 本章節 修正桌面下方工具列沒有遮到 桌面下方工具列要不要顯示 electron ? 隱藏到工具列右下角的系統匣(System Tray)中
2026/04/23
前言 公司最近配的一台螢幕,沒辦法調整亮度,亮得要命,眼睛要瞎掉了 所以只好自立自強搞一個螢幕遮罩 本章節 修正桌面下方工具列沒有遮到 桌面下方工具列要不要顯示 electron ? 隱藏到工具列右下角的系統匣(System Tray)中
2026/04/16
前言 公司最近配的一台螢幕,沒辦法調整亮度,亮得要命,眼睛要瞎掉了 所以只好自立自強搞一個螢幕遮罩 上一章節回顧 第一章:顯示 Electron 視窗,可調整透明度 第二章:參數維護移植到 main/js 第三章:增加調整顏色功能 本章節內容 隱藏 electron 應用程式視窗
2026/04/16
前言 公司最近配的一台螢幕,沒辦法調整亮度,亮得要命,眼睛要瞎掉了 所以只好自立自強搞一個螢幕遮罩 上一章節回顧 第一章:顯示 Electron 視窗,可調整透明度 第二章:參數維護移植到 main/js 第三章:增加調整顏色功能 本章節內容 隱藏 electron 應用程式視窗
2026/04/09
前言 公司最近配的一台螢幕,沒辦法調整亮度,亮得要命,眼睛要瞎掉了 所以只好自立自強搞一個螢幕遮罩 上一章節回顧 第一章:顯示 Electron 視窗,可調整透明度 第二章:參數維護移植到 main/js 本章節內容 增加調整顏色功能
2026/04/09
前言 公司最近配的一台螢幕,沒辦法調整亮度,亮得要命,眼睛要瞎掉了 所以只好自立自強搞一個螢幕遮罩 上一章節回顧 第一章:顯示 Electron 視窗,可調整透明度 第二章:參數維護移植到 main/js 本章節內容 增加調整顏色功能
看更多
你可能也想看
Thumbnail
這份是我在使用Lovable做網站時,邊做邊紀錄的完整攻略,分享給需要的人。 給開發者/接案者的前言: Lovable 是一個強大的 AI 全端開發工具,要用它來賺錢,您必須清楚它的邊界在哪裡。這份指南將協助您完全掌控這個工具,從而自信地向客戶報價。 第一章:深度認識 Lovable 1.1
Thumbnail
這份是我在使用Lovable做網站時,邊做邊紀錄的完整攻略,分享給需要的人。 給開發者/接案者的前言: Lovable 是一個強大的 AI 全端開發工具,要用它來賺錢,您必須清楚它的邊界在哪裡。這份指南將協助您完全掌控這個工具,從而自信地向客戶報價。 第一章:深度認識 Lovable 1.1
Thumbnail
網站開發專案成功的關鍵在於與客戶的有效溝通。本文分享一個成功案例,說明如何透過明確掌握專案需求、主動提供技術方案、定期回報進度、完善技術協助及建立良好客戶關係,順利完成一個中文影片學習分享網站的建置,並獲得客戶高度滿意與後續合作機會。
Thumbnail
網站開發專案成功的關鍵在於與客戶的有效溝通。本文分享一個成功案例,說明如何透過明確掌握專案需求、主動提供技術方案、定期回報進度、完善技術協助及建立良好客戶關係,順利完成一個中文影片學習分享網站的建置,並獲得客戶高度滿意與後續合作機會。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
從實際應用中學習 Python 程式設計,提升技能並建立作品集。文章提供八個循序漸進的 Python 專案範例,涵蓋檔案操作、網路爬蟲、Web 應用、自動化腳本、數據分析、遊戲開發、API 互動及應用程式部署,並附上實戰建議及學習資源。
Thumbnail
從實際應用中學習 Python 程式設計,提升技能並建立作品集。文章提供八個循序漸進的 Python 專案範例,涵蓋檔案操作、網路爬蟲、Web 應用、自動化腳本、數據分析、遊戲開發、API 互動及應用程式部署,並附上實戰建議及學習資源。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
這是一場從「網路連結 → 線下見面」的活動,我一開始其實有些猶豫,畢竟地點對我來說不近,加上平常在社群裡其實不太主動互動。 但因為主辦人西打誠意滿滿地邀請,甚至還提出補貼車資,最後我決定自費參加。現在回頭看,真的很值得! 場地很有感,氛圍超溫暖 一踏進場地就被暖黃的燈光包圍,小閣樓超舒適,還
Thumbnail
這是一場從「網路連結 → 線下見面」的活動,我一開始其實有些猶豫,畢竟地點對我來說不近,加上平常在社群裡其實不太主動互動。 但因為主辦人西打誠意滿滿地邀請,甚至還提出補貼車資,最後我決定自費參加。現在回頭看,真的很值得! 場地很有感,氛圍超溫暖 一踏進場地就被暖黃的燈光包圍,小閣樓超舒適,還
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News