项目配置在项目目录中的 wails.json
文件中。 配置的结构是:
{
// 项目配置版本
"version": "",
// 项目名称
"name": "",
// 包含已编译资源的目录的相对路径,这通常是推断出来的,可以留空
"assetdir": "",
// 触发重新加载的其他目录(逗号分隔),这仅用于某些高级资产配置
"reloaddirs": "",
// 构建文件所在的目录。默认为“build”
"build:dir": "",
// 前端目录的相对路径。默认为“frontend”
"frontend:dir": "",
// 安装节点依赖项的命令,在前端目录中运行-通常是`npm install`
"frontend:install": "",
// 构建资产的命令,在前端目录中运行-通常是`npm run build`
"frontend:build": "",
// 此命令已被frontend:dev:build替换。如果未指定frontend:dev:build,则将回退到此命令。如果也没有指定此命令,则将回退到前端:build
"frontend:dev": "",
// 此命令在开发中相当于frontend:build。如果未指定,则回退到前端:dev
"frontend:dev:build": "",
// 此命令在开发中相当于前端:install。如果未指定,则回退到前端:install
"frontend:dev:install": "",
// 此命令在'wails-dev'上的一个单独进程中运行。适用于第三方观察者或启动第三方开发服务器
"frontend:dev:watcher": "",
// 用于为资产提供服务的第三方开发服务器EG Vite的URL。如果将其设置为“auto”,则将从Vite输出中推断出devServerUrl
"frontend:dev:serverUrl": "",
// 创建自动生成的JS模块的目录的相对路径
"wailsjsdir": "",
// 二进制文件的名称
"outputfilename": "",
// 开发服务器在检测到资产变化时等待重新加载的默认时间
"debounceMS": 100,
// 将wails-dev服务器绑定到的地址。默认值:localhost:34115
"devServer": "",
// 在开发模式下以shell样式传递给应用程序的参数
"appargs": "",
// 定义是否应运行构建挂钩,尽管它们是为主机操作系统以外的操作系统定义的。
"runNonNativeBuildHooks": false,
"preBuildHooks": {
// 在构建指定的GOOS/GOARCH:${platform}之前执行的命令将被替换为“GOOS/GORACH”。“GOOS/GOARCH”钩子在“GOOS/*”和“*/*”钩子之前执行。
"GOOS/GOARCH": "",
// 在构建指定的GOOS:${platform}之前执行的命令将被替换为“GOOS/GOARCH”。“GOOS/*”挂钩在“*/*”钩子之前执行。
"GOOS/*": "",
// 在每次构建之前执行的命令:${platform}被替换为“GOOS/GOARCH”。
"*/*": ""
},
"postBuildHooks": {
// 在构建指定的GOOS/GOARCH:${platform}后执行的命令将被替换为“GOOS/GORACH”,${bin}将被替换成编译二进制文件的路径。“GOOS/GOARCH”钩子在“GOOS/*”和“*/*”钩子之前执行。
"GOOS/GOARCH": "",
// 在构建指定的GOOS:${platform}后执行的命令将替换为“GOOS/GOARCH”,${bin}替换为编译二进制文件的路径。“GOOS/*”挂钩在“*/*”钩子之前执行。
"GOOS/*": "",
// 每次构建后执行的命令:${platform}被替换为“GOOS/GOARCH”,${bin}被替换成编译二进制文件的路径。
"*/*": ""
},
// 用于填充清单和版本信息的数据。
"info": {
// 公司名称。默认值:[项目名称]
"companyName": "",
// 产品名称。默认值:[项目名称]
"productName": "",
// 产品的版本。默认值:“1.0.0”
"productVersion": "",
// 产品的版权。默认值:“Copyright.........“
"copyright": "",
// 应用程序的简短评论。默认值: 'Built using Wails (https://wails.app)'
"comments": "",
// 应用程序的文件关联
"fileAssociations": [
{
// 文件拓展名,例如png
"ext": "wails",
// 名称,例如PNG File
"name": "Wails",
// 仅限Windows。描述。它显示在Windows资源管理器的“类型”列上。
"description": "Wails file",
// 不带扩展名的图标名称。图标应位于构建文件夹中。适用于macOS和Windows的.png文件将生成正确的图标)
"iconName": "fileIcon",
// 仅限macOS。应用程序在类型方面的作用。Corresponds to CFBundleTypeRole.
"role": "Editor"
},
],
// 应用程序应打开的自定义URI协议
"protocols": [
{
// 协议域,例如:myapp
"scheme": "myapp",
// 仅限Windows。描述。它显示在Windows资源管理器的“类型”列上。
"description": "Myapp protocol",
// 仅限macOS。应用程序在类型方面的作用。Corresponds to CFBundleTypeRole.
"role": "Editor"
}
]
},
// 'multiple': 每个架构一个安装程序。 'single': 用于当前正在构建的系统架构的单一通用安装程序。 Default: 'multiple'
"nsisType": "",
// 应用程序是否应该被混淆。Default: false
"obfuscated": "",
// 使用模糊标志时传递给garble命令的参数
"garbleargs": "",
// 绑定配置
"bindings": {
// model.ts file generation config
"ts_generation": {
// All generated JavaScript entities will be prefixed with this value
"prefix": "",
// All generated JavaScript entities will be suffixed with this value
"suffix": "",
// Type of output to generate (classes|interfaces)
"outputType": "classes",
}
}
}
该文件将在运行 wails build
或 wails dev
时,由 Wails CLI 读取。
wails build/dev
命令中的 assetdir
、reloaddirs
、wailsjsdir
、debounceMS
、devserver
和 frontenddevserverurl
标志将覆盖项目配置并作为后续运行的默认值。