Skip to content

Build: Avoids rebuilding Backoffice unless it is required#19189

Merged
iOvergaard merged 1 commit intocontribfrom
feature/build-staticassets-on-demand
Apr 29, 2025
Merged

Build: Avoids rebuilding Backoffice unless it is required#19189
iOvergaard merged 1 commit intocontribfrom
feature/build-staticassets-on-demand

Conversation

@iOvergaard
Copy link
Copy Markdown
Contributor

@iOvergaard iOvergaard commented Apr 29, 2025

Description

Some people have noticed how the Backoffice seems to build even though no files are changed. Our theory is that this happens simply because there are too many input files to consider for the MSBuild target.

In v13, the StaticAssets build was only triggered by the existence of either the output folder or a preserve.* marker file. Here, we also check for the node_modules/.package-lock.json file before reinstalling npm dependencies. Additionally, we now only run npm install rather than npm ci to optimise the build.

As an aide, you can check how it was done in V13 here: https://github.com/umbraco/Umbraco-CMS/blob/v13/dev/src/Umbraco.Cms.StaticAssets/Umbraco.Cms.StaticAssets.csproj

How to test

  1. Check out this branch
  2. Run dotnet clean or Clean Solution
  3. Run dotnet run
  4. Check that both the Login as well as the Backoffice UI are shown and working
  5. Shut down the server and run it again
  6. Verify that none of the client builds are running (e.g., it will be fast to start up again)
  7. Run dotnet clean again
  8. Verify that the output folders disappear (staticassets/wwwroot/backoffice and login)
  9. Run dotnet run again
  10. Verify that the output folders once again are built and work

Hint: You can CD into the Umbraco.Cms.StaticAssets directory and run dotnet build -v diag --no-dependencies and check the logged messages. It should say that the builds were skipped:

image

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants