大家好,今天給大家分享一個使用Go語言和現代Web技術構建跨平臺桌面應用程式開源專案Wails
。
Wails是一個允許開發者使用Go和Web技術編寫桌面應用程式的專案。
它被設計為Go的快速且輕量的Electron替代品,旨在提供一個平臺,讓開發者可以利用Go的效能優勢,並結合任何前端技術棧,如React、Vue或Svelte,來建立桌面應用。
專案介紹
Wails
作為一個橋樑,連線強大的Go後端邏輯與豐富的Web前端介面,允許開發者利用兩者的最佳特性來開發應用。下面是Wails專案的一些關鍵特點和優勢:
特色功能
1. 跨平臺能力
Wails編譯的應用可以執行在Windows、macOS和Linux上,支援原生選單、對話方塊、主題和半透明,無需為每個平臺單獨編寫程式碼,大大提高了開發效率和應用的可移植性。
2. Go語言後端
利用Go語言的強大功能和效能優勢,處理後臺邏輯、檔案操作、網路通訊等任務,同時享受Go的簡潔語法和併發處理能力。
3. Web技術前端
前端介面可以使用諸如Vue.js、React、Angular等現代JavaScript框架來構建,這些技術成熟且擁有活躍的社群支援,便於構建互動豐富的使用者介面。
4. 輕量級替代方案
Wails被視作Go語言環境下的輕量級Electron替代品,意味著它可以提供類似Electron的開發體驗,但目標是建立更小、更快的應用程式。
5. 內建開發工具
Wails提供了一個命令列工具(wailsdev),用於快速搭建、編譯和啟動應用,包括自動處理前端依賴安裝,簡化了開發流程。
6. 社群和資源
有如Awesome Wails這樣的資源寶庫,為開發者提供了模板、啟動器、開源元件等,幫助快速啟動專案並提升開發效率。
7. 模組化和可擴充套件
Wails支援自定義繫結,使得開發者能夠輕鬆地將Go程式碼暴露給前端JavaScript呼叫,實現前後端的緊密整合。
安裝使用
支援的平臺
- Windows 10/11 AMD64/ARM64
- MacOS 10.13+ AMD64
- MacOS 11.0+ ARM64
- Linux AMD64/ARM64
依賴
Wails 有許多安裝前需要的常見依賴項:
- Go 1.18+
- NPM (Node 15+)
Go
從 Go 下載頁面 下載 Go。
確保您遵守官方的 Go 安裝說明。 您還需要確保您的 PATH 環境變數包含您的 ~/go/bin 目錄路徑。 重啟終端並執行以下命令檢查:
- 檢查 Go 是否安裝正確:
go version
- 檢查 “~/go/bin” 是否在您的 PATH 變數中:
echo $PATH | grep go/bin
NPM
從 Node 下載頁面 下載 NPM。 最好使用最新版本,因為這是我們通常會測試的版本。
執行 npm --version
進行驗證。
安裝Wails
執行 go install github.com/wailsapp/wails/v2/cmd/wails@latest
安裝 Wails CLI。
注意:如果您遇到了類似於以下內容的錯誤:
....\Go\pkg\mod\github.com\wailsapp\wails\v2@v2.1.0\pkg\templates\templates.go:28:12: pattern all:ides/*: no matching files found
請檢查您是否已安裝 Go 1.18+ ︰
go version
系統檢查
執行 wails doctor
將檢查您是否安裝了正確的依賴項。 如果沒有,它會就缺少的內容提供建議以幫助糾正問題。
建立專案
現在 CLI 已安裝,您可以使用 wails init 命令生成一個新專案。
- Svelte
wails init -n myproject -t svelte
//如果您更願意使用 TypeScript:
wails init -n myproject -t svelte-ts
- React
wails init -n myproject -t react
//如果您更願意使用 TypeScript:
wails init -n myproject -t react-ts
- Vue
wails init -n myproject -t vue
//如果您更願意使用 TypeScript:
wails init -n myproject -t vue-ts
- Preact
wails init -n myproject -t preact
//如果您更願意使用 TypeScript:
wails init -n myproject -t preact-ts
- Lit
wails init -n myproject -t lit
//如果您更願意使用 TypeScript:
wails init -n myproject -t lit-ts
還有提供不同功能和框架的 社群模板。
要檢視其他可用選項,您可以執行 wails init -help
。 更多詳細資訊可以在 初始化命令 中找到。
專案佈局
Wails 專案有以下佈局:
.
├── build/
│ ├── appicon.png
│ ├── darwin/
│ └── windows/
├── frontend/
├── go.mod
├── go.sum
├── main.go
└── wails.json
專案結構概要
- /main.go - 主應用
- /frontend/ - 前端專案檔案
- /build/ - 專案構建目錄
- /build/appicon.png - 應用程式圖示
- /build/darwin/ - Mac 特定的專案檔案
- /build/windows/ - Windows 特定的專案檔案
- /wails.json - 專案配置
- /go.mod - Go module 檔案
- /go.sum - Go module 校驗檔案
frontend 目錄沒有特定於 Wails 的內容,可以是您選擇的任何前端專案。
build 目錄在構建過程中使用。 這些檔案可以修改以自定義您的構建。 如果從 build 目錄中刪除檔案,將重新生成預設版本。
go.mod 中的預設模組名稱是“changeme”。 您應該將其更改為更合適的內容。
編譯專案
從專案目錄,執行 wails build。 這將編譯您的專案並將構建的可用於生產的二進位制檔案儲存在 build/bin 目錄中。
如果您執行二進位制檔案,您應該會看到預設應用程式:
專案地址
https://github.com/wailsapp/wails