diff --git a/v2/internal/project/project.go b/v2/internal/project/project.go index c348e8a20db..136abd8a51e 100644 --- a/v2/internal/project/project.go +++ b/v2/internal/project/project.go @@ -22,6 +22,7 @@ type Project struct { // Commands used in `wails dev` DevCommand string `json:"frontend:dev"` + DevBuildCommand string `json:"frontend:dev:build"` DevInstallCommand string `json:"frontend:dev:install"` DevWatcherCommand string `json:"frontend:dev:watcher"` // The url of the external wails dev server. If this is set, this server is used for the frontend. Default "" @@ -85,6 +86,16 @@ type Project struct { NSISType string `json:"nsisType"` } +func (p *Project) GetDevBuildCommand() string { + if p.DevBuildCommand != "" { + return p.DevBuildCommand + } + if p.DevCommand != "" { + return p.DevCommand + } + return p.BuildCommand +} + func (p *Project) GetDevInstallerCommand() string { if p.DevInstallCommand != "" { return p.DevInstallCommand diff --git a/v2/pkg/commands/build/base.go b/v2/pkg/commands/build/base.go index 02d7e71b4cb..bc306c67ff9 100644 --- a/v2/pkg/commands/build/base.go +++ b/v2/pkg/commands/build/base.go @@ -534,15 +534,9 @@ func (b *BaseBuilder) BuildFrontend(outputLogger *clilogger.CLILogger) error { } // Check if there is a build command - var buildCommand string - switch b.projectData.OutputType { - case "dev": - buildCommand = b.projectData.DevCommand - if buildCommand == "" { - buildCommand = b.projectData.BuildCommand - } - default: - buildCommand = b.projectData.BuildCommand + buildCommand := b.projectData.BuildCommand + if b.projectData.OutputType == "dev" { + buildCommand = b.projectData.GetDevBuildCommand() } if buildCommand == "" { outputLogger.Println(" - No Build command. Skipping.") diff --git a/website/docs/reference/project-config.mdx b/website/docs/reference/project-config.mdx index 374b5ea4390..936e3fd5f8b 100644 --- a/website/docs/reference/project-config.mdx +++ b/website/docs/reference/project-config.mdx @@ -13,7 +13,8 @@ The project config resides in the `wails.json` file in the project directory. Th "reloaddirs": "[Additional directories to trigger reloads (comma separated), this is only used for some advanced asset configurations]", "frontend:install": "[The command to install node dependencies, run in the frontend directory - often `npm install`]", "frontend:build": "[The command to build the assets, run in the frontend directory - often `npm run build`]", - "frontend:dev": "[This command is the dev equivalent of frontend:build. If not specified falls back to frontend:build]", + "frontend:dev": "[This command has been replaced by frontend:dev:build. If frontend:dev:build is not specified will falls back to this command. If this command is also not specified will falls back to frontend:build]", + "frontend:dev:build": "[This command is the dev equivalent of frontend:build. If not specified falls back to frontend:dev]", "frontend:dev:install": "[This command is the dev equivalent of frontend:install. If not specified falls back to frontend:install]", "frontend:dev:watcher": "[This command is run in a separate process on `wails dev`. Useful for 3rd party watchers or starting 3d party dev servers]", "frontend:dev:serverUrl": "[URL to a 3rd party dev server to be used to serve assets, EG Vite. If this is set to 'auto' then the devServerUrl will be inferred from the Vite output]", diff --git a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/project-config.mdx b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/project-config.mdx index 2140c4c2743..1851ac70b31 100644 --- a/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/project-config.mdx +++ b/website/i18n/zh-Hans/docusaurus-plugin-content-docs/current/reference/project-config.mdx @@ -13,7 +13,8 @@ sidebar_position: 5 "reloaddirs": "[触发重新加载的附加目录(逗号分隔),这仅用于一些重要资源配置]", "frontend:install": "[安装 node 依赖的命令,在 frontend 目录下运行 - 通常是 `npm install`]", "frontend:build": "[构建资源的命令,在 frontend 目录下运行 - 通常是 `npm run build`]", - "frontend:dev": "[此命令等效于开发模式中的 frontend:build,如果没有指定则只有 frontend:build]", + "frontend:dev": "[此命令已被 frontend:dev:build 替代。如果没有指定 frontend:dev:build 将回退到该命令,如果此命令也没有指定将回退到 frontend:build]", + "frontend:dev:build": "[此命令等效于开发模式中的 frontend:build,如果没有指定则回退到 frontend:dev]", "frontend:dev:install": "[此命令等效于开发模式中的 frontend:install,如果没有指定则只有 frontend:install]", "frontend:dev:watcher": "[此命令在 `wails dev` 上的单独进程中运行。对第 3 方观察者有用]", "frontend:dev:serverUrl": "[使用第三方开发服务器提供资源,比如 Vite",