的安裝包)
drawio-desktop Windows 兼容指南3分鐘選對適合你CPU架構(gòu)的安裝包【免費(fèi)下載鏈接】drawio-desktopOfficial electron build of draw.io項(xiàng)目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop裝過圖形化工具的朋友應(yīng)該都有過這種經(jīng)歷下載的安裝包要么彈出 SmartScreen 警告要么在 32 位老機(jī)器上直接打不開還有的在公司電腦上因?yàn)闆]管理員權(quán)限根本裝不了。drawio-desktop 是 draw.io 繪圖工具的官方 Electron 桌面版它在 Windows 側(cè)同時支持 x64、ARM64 和 32 位三種架構(gòu)并按場景拆成了 NSIS 安裝器、MSI 包和便攜版三種形態(tài)。讀完這篇文章你會帶走三樣?xùn)|西看懂它一套配置管一個架構(gòu)的構(gòu)建思路、知道 30 秒內(nèi)選對自己該下載的那個包、以及從源碼克隆到本地打包跑通的完整流程。項(xiàng)目速覽一個默認(rèn)不聯(lián)網(wǎng)的繪圖桌面應(yīng)用drawio-desktop 用 Electron一個基于 Chromium 和 Node.js 的框架作用是把 Web 應(yīng)用套上殼變成桌面程序封裝了核心 draw.io 編輯器把網(wǎng)頁版的功能搬進(jìn)可離線安裝的桌面程序里。它的核心賣點(diǎn)不是功能多而是隔離所有 JavaScript 文件自包含內(nèi)容安全策略CSP瀏覽器用來限制頁面能加載哪些資源的安全規(guī)則禁止運(yùn)行遠(yuǎn)程加載的腳本圖表數(shù)據(jù)永遠(yuǎn)不會發(fā)往外網(wǎng)。Windows 側(cè)的發(fā)布產(chǎn)物由 electron-builderElectron 生態(tài)最主流的打包工具根據(jù)三份不同的 JSON 配置分別構(gòu)建一份對應(yīng)一種硬件架構(gòu)。官方文檔README.md多架構(gòu)構(gòu)建配置拆解 ??配置層一份 JSON 管一個架構(gòu)倉庫根目錄放了三份 Windows 專屬構(gòu)建配置electron-builder-win.json負(fù)責(zé) x64electron-builder-win-arm64.json負(fù)責(zé) ARM64electron-builder-win32.json負(fù)責(zé) 32 位。以 64 位為主的 electron-builder-win.json 為例target 字段一次性聲明了兩種打包格式target: [ { target: nsis, arch: [x64] }, { target: msi, arch: [x64] } ]人話解釋構(gòu)建時同時產(chǎn)出圖形化 NSIS 安裝器和 MSI 包一次構(gòu)建滿足兩種分發(fā)需求。ARM64 配置則產(chǎn)出 NSIS portable免安裝版32 位只有 NSIS。為什么非要拆成三個文件因?yàn)?electron-builder 把 x64 和 ia32 塞進(jìn)同一個配置時會打出一個雙架構(gòu)的大文件拆開后每個產(chǎn)物都保持精簡。另外三份配置都帶代碼簽名塊publisherName為 JGraph Ltd 和 draw.io Ltd哈希算法用 sha256。這就是官方包能通過 SmartScreen 校驗(yàn)、而個人構(gòu)建會被警告的原因。功能層文件關(guān)聯(lián)讓你雙擊就能畫三份配置里的fileAssociations完全一致給應(yīng)用綁定了三類文件{ ext: drawio, name: draw.io Diagram, mimeType: application/vnd.jgraph.mxfile, role: Editor }實(shí)際配置里除了.drawio還包含.vsdxVisio 文檔和.mmd/.mermaidMermaid 文本圖。裝完之后這些文件在資源管理器里右鍵就有用 draw.io 打開的選項(xiàng)雙擊直接進(jìn)編輯界面。形態(tài)層NSIS、MSI、Portable 的權(quán)限差異NSIS 安裝器在配置里的關(guān)鍵幾項(xiàng)nsis: { oneClick: false, perMachine: true, allowToChangeInstallationDirectory: true, createDesktopShortcut: false }翻譯成安裝體驗(yàn)不是靜默一鍵裝而是逐步向?qū)аb到 Program Files 對全機(jī)器用戶生效需要管理員權(quán)限可以自定義安裝目錄默認(rèn)不建桌面快捷方式。而 MSI 走的是 per-user 路線裝進(jìn)用戶目錄、不需要管理員Portable 則完全免安裝代價是不注冊文件關(guān)聯(lián)。從克隆到跑通的完整流程克隆倉庫--recursive必須帶核心編輯器是一個 git 子模塊 git clone --recursive https://gitcode.com/GitHub_Trending/dr/drawio-desktop cd drawio-desktop安裝依賴要求 Node.js 22.12 或更高版本 npm install直接啟動驗(yàn)證環(huán)境沒問題 npm start若要本地打包先同步版本號并禁用自動更新 npm run sync -- disableUpdate在 PowerShell 中打出 Windows 安裝包 $env:DRAWIO_UNSIGNEDtrue npx electron-builder --config electron-builder-win.json --publish never第 4、5 步的人話解釋DRAWIO_UNSIGNED是明確告訴構(gòu)建流程跳過官方代碼簽名產(chǎn)物會落在dist/目錄本地包沒有簽名運(yùn)行安裝器時 SmartScreen 會提醒點(diǎn)仍要運(yùn)行即可。package.json 里的npm run release-win、release-win32、release-win-arm64是官方 CI 用的發(fā)布命令會嘗試把產(chǎn)物推送到 release 頁面?zhèn)€人環(huán)境請直接用上面的npx electron-builder方式。容易被忽略的細(xì)節(jié)安全設(shè)計與數(shù)據(jù)存儲自動更新是唯一默認(rèn)外聯(lián)行為應(yīng)用啟動時會檢查新版本企業(yè)統(tǒng)一部署可設(shè)環(huán)境變量DRAWIO_DISABLE_UPDATEtrue或啟動時加--disable-update徹底關(guān)掉。打開不可信文件可能暴露你的 IP圖表內(nèi)可以引用外部 URL 的圖片、字體打開時應(yīng)用會去請求這些地址以正確渲染。圖表內(nèi)容本身不外傳但請求行為對目標(biāo)服務(wù)器可見。用戶數(shù)據(jù)天然隔離本地存儲放在C:\Users\用戶名\AppData\Roaming\draw.io\多用戶機(jī)器上各用各的互不干擾。安全說明SECURITY.md我該選哪個版本你的環(huán)境推薦形態(tài)關(guān)鍵差異有管理員權(quán)限的 64 位電腦NSIS 安裝器全機(jī)器生效注冊文件關(guān)聯(lián)無管理員權(quán)限的公司電腦MSI裝進(jìn)用戶目錄免管理員U 盤攜帶、臨時使用Portable免安裝但不注冊文件關(guān)聯(lián)ARM64 設(shè)備如 Surface Pro Xarm64 版NSIS 或 Portable 可選老 32 位 Windowsia32 版僅 NSIS 一種形態(tài)拿不準(zhǔn)架構(gòu)時看設(shè)置 系統(tǒng) 關(guān)于里的系統(tǒng)類型一行即可。另外Microsoft StoreAPPX渠道的安裝包同樣支持免管理員的 per-user 安裝有 Store 賬號的讀者也可以走這條路。寫在最后drawio-desktop 在 Windows 上的兼容性本質(zhì)上做對了三件事按架構(gòu)拆分構(gòu)建配置、用三種分發(fā)形態(tài)覆蓋不同權(quán)限邊界、以及一條默認(rèn)零外聯(lián)的安全底線。下期我們聊聊怎么 fork 一份源碼做本地定制構(gòu)建以及如何讓私有修改跟上官方更新節(jié)奏。有同感的話回頭來看更新就好?!久赓M(fèi)下載鏈接】drawio-desktopOfficial electron build of draw.io項(xiàng)目地址: https://gitcode.com/GitHub_Trending/dr/drawio-desktop創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考