5、项目配置

项目配置

项目配置在项目目录中的 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 buildwails dev 时,由 Wails CLI 读取。

wails build/dev 命令中的 assetdirreloaddirswailsjsdirdebounceMSdevserverfrontenddevserverurl 标志将覆盖项目配置并作为后续运行的默认值。