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