大家好,今天給大家分享一個使用Go語言和現代Web技術構建跨平臺桌面應用程式開源專案Wails

一個使用Go語言和現代Web技術構建跨平臺桌面應用程式開源專案

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 目錄中。

如果您執行二進位制檔案,您應該會看到預設應用程式:

一個使用Go語言和現代Web技術構建跨平臺桌面應用程式開源專案

專案地址

https://github.com/wailsapp/wails