wordpress single模板,网站seo外链接,龙岩网站设计 都找推商吧系统,系统平台搭建文章目录 1. 安装 Wails2. 创建 Wails 项目3. 项目结构4. 运行项目5. 构建项目6. 部署和发布总结 Wails 是一个用于构建跨平台桌面应用程序的框架#xff0c;允许开发者使用前端技术#xff08;如 HTML、CSS、JavaScript#xff09;以及 Go 语言来开发桌面应用。本文基于官方… 文章目录 1. 安装 Wails2. 创建 Wails 项目3. 项目结构4. 运行项目5. 构建项目6. 部署和发布总结 Wails 是一个用于构建跨平台桌面应用程序的框架允许开发者使用前端技术如 HTML、CSS、JavaScript以及 Go 语言来开发桌面应用。本文基于官方文档《
Wails 入门指南 - 创建第一个项目》总结 Wails 的项目创建过程。 1. 安装 Wails
在开始使用 Wails 之前你需要在系统中安装它。按照文档的说明使用以下命令安装 Wails
go install github.com/wailsapp/wails/v2/cmd/wailslatest确保你已经安装了 Go 语言并将其添加到环境变量中。安装完成后可以通过运行以下命令验证 Wails 是否成功安装
wails doctorgit:(feat-wails) ✗ wails docker
Wails CLI v2.9.2Available commands:build Builds the application dev Runs the application in development mode doctor Diagnose your environment init Initialises a new Wails project update Update the Wails CLI show Shows various information generate Code Generation Tools version The Wails CLI version Flags:-helpGet help on the wails command.此命令将检查系统的依赖环境并确保一切正常运行。
2. 创建 Wails 项目
创建项目的过程相当简单只需运行以下命令即可(PS: 最新版本需要-n参数指定项目名)
wails init -n wails-demo这会启动一个交互式的 CLI 提示你可以选择项目的类型。通常有两种模板供选择
Vue 模板适合那些喜欢使用 Vue.js 构建前端的开发者。React 模板适合那些习惯于使用 React 的开发者。
选择其中一种模板并输入项目名称后Wails 会自动生成一个包含前端和后端代码的基本项目结构。
框架项目指定TypeScriptsveltewails init -n myproject -t sveltewails init -n myproject -t svelte-tsreactwails init -n myproject -t reactwails init -n myproject -t react-tsvuewails init -n myproject -t vuewails init -n myproject -t vue-tspreactwails init -n myproject -t preactwails init -n myproject -t preact-tslitwails init -n myproject -t litwails init -n myproject -t lit-tsvanillawails init -n myproject -t vanillawails init -n myproject -t vanilla-ts
3. 项目结构
.
├── build/
│ ├── appicon.png
│ ├── darwin/
│ └── windows/
├── frontend/
├── go.mod
├── go.sum
├── main.go
└── wails.json项目生成后主要目录结构如下
frontend/前端代码通常使用你选择的框架Vue/React来编写。go.modGo 项目的模块定义文件。main.go主要的 Go 语言入口文件负责管理应用的后端逻辑。wails.jsonWails 项目的配置文件。
这个结构清晰地将前端和后端分离使得开发者能够分别处理界面和逻辑部分。
frontend 目录没有特定于 Wails 的内容可以是您选择的任何前端项目。
build 目录在构建过程中使用。 这些文件可以修改以自定义您的构建。 如果从 build 目录中删除文件将重新生成默认版本。
go.mod 中的默认模块名称是“changeme”。 您应该将其更改为更合适的内容。
4. 运行项目
项目初始化完成后可以通过以下命令运行项目
wails dev这个命令会启动开发服务器并在默认浏览器中打开应用。在开发过程中任何前端代码的修改都会被自动编译和更新方便实时预览效果。
该程序执行以下操作
- 构建您的应用程序并运行它
- 将您的 Go 代码绑定到前端以便可以从 JavaScript 调用它
- 使用 Vite 的强大功能将监视您的 Go 文件中的修改并在更改时重新构建/重新运行
- 启动一个 网络服务器 通过浏览器为您的应用程序提供服务。 这使您可以使用自己喜欢的浏览器扩展。 你甚至可以从控制台调用你的 Go 代码。标志描述默认-appargs “参数”以 shell 样式传递给应用程序的参数-assetdir “./path/to/assets”从给定目录提供资产而不是使用提供的资产 FSwails.json 中的值-browser在启动时打开浏览器到 http://localhost:34115-compiler “编译器”使用不同的 go 编译器来构建例如 go1.15beta1go-debounce检测到资产更改后等待重新加载的时间100 (毫秒)-devserver “host:port”将 wails 开发服务器绑定到的地址“localhost:34115”-extensions触发重新构建的扩展逗号分隔go-forcebuild强制构建应用程序-frontenddevserverurl “url”使用 3rd 方开发服务器 url 提供资产例如Vite“”-ldflags “标志”传递给编译器的额外 ldflags-loglevel “日志级别”要使用的日志级别 - Trace, Debug, Info, Warning, ErrorDebug调试-nocolour关闭彩色命令行输出false-noreload资产更改时禁用自动重新加载-nosyncgomod不同步 go.mod 中的 Wails 版本false-race使用 Go 的竞态检测器构建false-reloaddirs触发重新加载的附加目录逗号分隔wails.json 中的值-s跳过前端构建false-save将指定的 assetdir、 reloaddirs、 wailsjsdir、 debounce 、 devserver 和 frontenddevserverurl 标志的值保存到 wails.json 以成为后续调用的默认值。-skipbindings跳过 bindings 生成-tags “额外标签”传递给编译器的构建标签引号和空格分隔-v详细级别 (0 - silent, 1 - standard, 2 - verbose)1-wailsjsdir生成生成的Wails JS模块的目录wails.json 中的值
示例wails dev -assetdir ./frontend/dist -wailsjsdir ./frontend/src -browser此命令将执行以下操作构建应用程序并运行它更多细节在 这里
在 ./frontend/src 中生成 Wails JS 模块
监听 ./frontend/dist 中文件的更新并在更改时重新加载
打开浏览器并连接到应用程序5. 构建项目
开发完成后你可以通过以下命令构建桌面应用
wails build这个命令会生成适用于目标操作系统的可执行文件。生成的文件可以直接分发和安装无需用户单独安装任何依赖。
标志描述默认-clean清理 build/bin 目录-compiler “编译器”使用不同的 go 编译器来构建例如 go1.15beta1go-debugRetains debug information in the application and shows the debug console. 允许在应用程序窗口中使用 devtools-devtoolsAllows the use of the devtools in the application window in production (when -debug is not used). Ctrl/CmdShiftF12 may be used to open the devtools window. NOTE: This option will make your application FAIL Mac appstore guidelines. Use for debugging only.-dryrun打印构建命令但不执行它-f强制构建应用-garbleargs传递给 garble 的参数-literals -tiny -seedrandom-ldflags “标志”传递给编译器的额外 ldflags-m编译前跳过 mod tidy-nopackage不打包应用程序-nocolour在输出中禁用颜色-nosyncgomod不同步 go.mod 中的 Wails 版本-nsis为 Windows 生成 NSIS 安装程序-o 文件名输出文件名-obfuscated使用 garble 混淆应用程序-platform为指定的 平台逗号分割构建例如 windows/arm64。 windows/arm64。 注意如果不给出架构则使用 runtime.GOARCH。如果给定环境变量 platform GOOS 否则等于 runtime.GOOS。 如果给定环境变量 arch GOARCH 否则等于 runtime.GOARCH.-race使用 Go 的竞态检测器构建-s跳过前端构建-skipbindings跳过 bindings 生成-tags “额外标签”构建标签以传递给 Go 编译器。 必须引用。 空格或逗号但不能同时使用分隔-trimpath从生成的可执行文件中删除所有文件系统路径。-u更新项目的 go.mod 以使用与 CLI 相同版本的 Wails-upx使用 “upx” 压缩最终二进制文件-upxflags传递给 upx 的标志-v int详细级别 (0 - silent, 1 - default, 2 - verbose)1-webview2WebView2 安装策略download,embed,browser,error.download-windowsconsole保留Windows构建控制台窗口
示例wails build -clean -o myproject.exe信息
在 Mac 上应用程序将被绑定到 Info.plist而不是 Info.dev.plist。苹果芯片上的 UPX
在苹果芯片上使用 UPX 相关的 问题。Windows 上的 UPX
一些防病毒软件供应商误将 upx 压缩的二进制文件标记为病毒请查看相关 问题。6. 部署和发布
构建完成的应用可以直接发布。根据操作系统的不同你可以打包成可安装文件如 Windows 的 .exeMacOS 的 .dmg 等。文档还提供了一些打包工具的建议如 electron-builder方便对应用进行进一步的包装和签名。
支持的平台有
平台描述darwinMacOS architecture of build machinedarwin/amd64MacOS 10.13 AMD64darwin/arm64MacOS 11.0 ARM64darwin/universalMacOS AMD64ARM64 universal applicationwindowsWindows 10/11 architecture of build machinewindows/amd64Windows 10/11 AMD64windows/arm64Windows 10/11 ARM64linuxLinux architecture of build machinelinux/amd64Linux AMD64linux/arm64Linux ARM64 总结
Wails 通过结合前端技术和 Go 后端提供了一个高效的方式来开发跨平台的桌面应用。其简单的项目初始化和清晰的结构使得开发者能够快速上手。通过 Wails可以充分利用 Web 开发技能同时获得原生桌面应用的优势。